=? UTF-8? B ?? = в сообщениях электронной почты, отправленных через почту php - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть веб-сайт, и в разделе «Контакты» у меня есть форма, которую пользователи могут заполнить, чтобы связаться со мной.Форма представляет собой простую форму, действие которой представляет собой страницу php.

Код php:

 $to = "email@domain.com";

 $name=$_POST['name']; // sender name
 $email=$_POST['email']; // sender email
 $tel= $_POST['tel']; // sender tel
 $subject=$_POST['subject']; // subject CHOSEN FROM DROPLIST, ALL TESTED
 $text=$_POST['text']; // Message from sender
 $text.="\n\nTel:".$tel; // Added to message to show me the telephone nr to the sender at bottom of message

 $headers="MIME-Version: 1.0"."\n";
 $headers.="Content-type: text/plain; charset=UTF-8"."\n";
 $headers.="From: $name <$email>"."\n";

 mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $text, $headers, '-fno-reply@domain.com');

Может кто-нибудь сказать мне, почему это работает в большинстве случаев, но иногда я получаю электронную почтубез текста и строки темы, показывающей

=?UTF-8?B??=

Я использую Outlook Express, и я прочитал это System.Net.Mail и =? utf-8? B? XXXXX .... Заголовки но это не помогло.

Проблема не в Outlook, потому что, когда я вхожу в реальную почтовую программу, откуда я получаю письма POP3, письмо выглядит одинаково.

Когда я щелкаю правой кнопкой мыши в Outlook и выбираю «источник сообщения», тогда отсутствует информация «От».

Ex, хорошее сообщение должно выглядеть так:

Subject: =?UTF-8?B?w5Z2cmlndA==?=
MIME-Version: 1.0
Content-type: text/plain; charset=UTF-8
From: John Doe 

Однако,те, у кого проблемы, выглядят так:

Subject: =?UTF-8?B??=
MIME-Version: 1.0
Content-type: text/plain; charset=UTF-8
From:  

Как будто где-то была потеряна информация.

Вы также должны знать, что у меня есть VPS, которым я управляю сам.Я использую postfix в качестве почтового сервера, если это как-то связано с этим.Но опять же, почему это иногда работает?

Еще одна вещь, которую я заметил, это то, что иногда специальные символы не отображаются правильно (как Outlook, так и веб-почтой).

Например,имя «Björkman» на шведском языке показано как Björkman, но опять же, только иногда.

Я надеюсь, что кто-нибудь знает что-то об этой проблеме, потому что мне очень трудно отследить по крайней мере.

Если вам нужно больше информации, дайте мне знать.

1 Ответ

0 голосов
/ 23 декабря 2010

Похоже, что форма размещена со всеми полями, оставленными пустыми. Есть боты, просматривающие сеть и отправляющие пустые формы. Вы смогли воспроизвести это с фактическими данными формы?

Дополнительная подсказка: ваш код открыт для внедрения заголовков писем - я могу публиковать любые заголовки, которые хочу, разделенные переносами строк, в $ _POST ['name'], и ваш код помещает его в заголовки писем. Как минимум удалите все разрывы строк из пользовательских данных, которые попадут в раздел заголовка.

...