Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: sendmail: кривая кодировка  (Прочитано 786 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ConnaiSSant

  • Автор темы
  • Активист
  • *
  • Сообщений: 458
    • Просмотр профиля
sendmail: кривая кодировка
« : 30 Январь 2017, 00:06:01 »
Замучился уже весь. Письма приходят с непонятной кодировкой (отправляет их скрипт), цитирую:

Цитировать
аŸб€аИаВаЕб‚, а“б€аИаГаОб€аИаЙ!
аЁаПаЕбˆбƒ баОаОаБб‰аИб‚бŒ а’аАб аО аИаЗаМаЕаНаЕаНаИаИ IP аАаДб€аЕбаА аДаОаМаАбˆаНаЕаГаО аКаОаМаПбŒбŽб‚аЕб€аА.

locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

Сам скрипт отправки:
#!/bin/bash
ip=`wget -q -O - http://formyip.com/ | awk '/The/{print $5}'`
ip2=`cat < /home/user/script/ip.txt`
if [ "$ip" != "$ip2" ]
then
echo "$ip" > /home/user/script/ip.txt
echo "From: [check_ip] <my.**@gmail.com>" > /home/user/script/head_mail
echo "To: USER <connai**@mail.ru> " >> /home/user/script/head_mail
echo "Subject: [check_ip]: Назначен новый IP" >> /home/user/script/head_mail
echo "Привет, Григорий!" >> /home/user/script/head_mail
echo "Спешу сообщить Вам о изменении IP адреса домашнего компьютера." >> /home/user/script/head_mail
echo "" >> /home/user/script/head_mail
echo "$ip" >> /home/user/script/head_mail
echo "" >> /home/user/script/head_mail
echo "С Уважением," >> /home/user/script/head_mail
echo "Ваш верный скрипт, [check_ip]" >> /home/user/script/head_mail
cat /home/user/script/head_mail | sendmail connaissant@mail.ru -o message-charset=
fi
exit 0


Пользователь добавил сообщение 30 Январь 2017, 00:12:09:
Присмотрелся, на телефоне на андроид в нативном почтовом клиенте отображается как должно быть. А в том же самом thunderbird отображается криво. В чем может быть проблема? Прошу помощи
« Последнее редактирование: 30 Январь 2017, 00:12:09 от ConnaiSSant »

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2261
    • Просмотр профиля
Re: sendmail: кривая кодировка
« Ответ #1 : 30 Январь 2017, 11:20:24 »
В заголовках и теле писем должны использоваться семибитные символы, поэтому UTF8 может не проходить - с отрезанным старшим битом вы видите то, что видите.

Решений может быть несколько.

Первое - использовать семь бит в символах (т.е. перейти на английский :) )
Второе - обернуть текст в MIME (это самый правильный вариант)
Третье - Послать заголовок "Content-Type: text/plain; charset=utf-8"
Четвертое - использовать (если поддерживает) опцию sendmail -o message-charset=utf-8

(вот тут можно чуть почитать: http://welinux.ru/post/6462/ или еще погуглить).

Оффлайн ConnaiSSant

  • Автор темы
  • Активист
  • *
  • Сообщений: 458
    • Просмотр профиля
Re: sendmail: кривая кодировка
« Ответ #2 : 30 Январь 2017, 17:40:06 »
В заголовках и теле писем должны использоваться семибитные символы, поэтому UTF8 может не проходить - с отрезанным старшим битом вы видите то, что видите.

Решений может быть несколько.

Первое - использовать семь бит в символах (т.е. перейти на английский :) )
Второе - обернуть текст в MIME (это самый правильный вариант)
Третье - Послать заголовок "Content-Type: text/plain; charset=utf-8"
Четвертое - использовать (если поддерживает) опцию sendmail -o message-charset=utf-8

(вот тут можно чуть почитать: http://welinux.ru/post/6462/ или еще погуглить).

Добавил к скрипту и вроде отображается. Но все ли правильно? Такое ощущение, что тут, что-то лишнее

MIME-Version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2261
    • Просмотр профиля
Re: sendmail: кривая кодировка
« Ответ #3 : 30 Январь 2017, 18:13:48 »
Да нет, вроде ничего лишнего.

Одно замечание: заголовок Content-type возможно лучше сделать таким (с кавычками):

Content-Type: text/plain; charset="utf-8"
(посмотрел заголовок у входящих писем)
« Последнее редактирование: 31 Январь 2017, 09:19:42 от Karl500 »

Оффлайн victor00000

  • Забанен
  • Старожил
  • *
  • Сообщений: 15570
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: sendmail: кривая кодировка
« Ответ #4 : 30 Январь 2017, 18:18:42 »
man iconv
Нельзя друзья, дулу - AnrDaemon видите?
~.o

Оффлайн ConnaiSSant

  • Автор темы
  • Активист
  • *
  • Сообщений: 458
    • Просмотр профиля
Re: sendmail: кривая кодировка
« Ответ #5 : 30 Январь 2017, 18:34:32 »
Да нет, вроде ничего лишнего.

Одно замечание: заголовок Content-type возможно лучше сделать таким (с кавычками):

Content-Type: text/plain; charset="utf-8"[/code]

(посмотрел заголовок у входящих писем)

Кавычки вернул, но что с ними, что без - ничего не поменялось. НУ ладно, пусть будут, раз у всех писем в моем ящике они есть =) Благодарю за помощь

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 27434
    • Просмотр профиля
Re: sendmail: кривая кодировка
« Ответ #6 : 31 Январь 2017, 17:35:13 »
В почте может использоваться только 7-бит кодировка. Никаких 8bit raw.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.183 секунд. Запросов: 24.