Intereting Posts
Mysql_fetch_object () SQL Query (КАК: Если результатов не найдено, отобразите «сообщение»)? Где PHP.ini в Mac OS X Lion? Думал, что это было в / usr / local / php5 / lib Обработка PHP $ _POST с помощью AngularJS? завиток или fsockopen для paypal ipn Где хранить попытки входа и текущий статус входа в систему, файлы cookie или сеансы? Как преобразовать строку в алфавитно-цифровое и преобразовать пробелы в тире? Нужна помощь по настройке значения в php Как проверить, существует ли файл на внешнем сервере Как загрузочные сессии в Zend Framework 2 при включении () или require () мне всегда нужно использовать ../../ относительно моего файла? Есть простой способ? SimpleXML получает элемент Элемент между дочерними элементами Как проверить, существует ли файл на удаленном сервере с помощью PHP? Объявлять свойство как объект? Создание эскизов из swf-файла в php? Извлечение данных из экспорта закладок Google Chrome с помощью PHP

Сообщение электронной почты CodeIgniter SMTP – символы заменены одинаковыми знаками

Я использую электронную библиотеку CodeIgniter для отправки писем с использованием нашего сервера Exchange. Проблема, которую я получаю, заключается в том, что содержимое электронной почты перепутано.

Есть несколько слов, которые заменяются равными знаками «=», я пробовал 2 разных сервера Exchange (они находятся в разных местах и ​​не имеют никакого отношения к тому, что когда-либо), и я все равно получаю ту же проблему. Если я использую любой другой сервер в качестве SMTP-сервера для отправки писем, все работает нормально, а контент остается неизменным и неизменным.

Содержимое перед отправкой:

Dear Customer Please find attached a comprehensive explanation of how to get our brochure of Angola. This has been sent to you at the request of Alex. The information has been taken from www.example.co.uk "Company name" is one of the leading tile and marble companies in the UK. 

Содержимое после отправки через Microsoft Exchange:

 Dear Customer Please find attached a comprehensive explanation of how to get our brochure of A=gola. This has been sent to you at the request of Alex. The information has been taken from www.example.co.uk "Company name" is one of the leadi=g tile and marble companies in the UK. 

Как видно, по какой-то причине некоторые из «n» символов были заменены равными знаками «=» (пример: Angola> A = gola)

Моя конфигурация электронной почты:

 $this->load->library('email'); $config['charset'] = 'utf-8'; $config['mailtype'] = 'html'; // SMTP $config['protocol'] = 'smtp'; $config['smtp_host'] = 'exchange.example.com'; //ssl:// $config['smtp_user'] = 'email@example.com'; $config['smtp_pass'] = 'password'; $config['smtp_port'] = 25; $this->email->set_newline( "\r\n" ); $this->email->initialize( $config ); $this->email->clear(); ...... $this->email->from( $frome, $fromn ); $this->email->to( $email ); $this->email->subject( $subject ); $this->email->message( $send_message ); $this->email->send(); 

Кто-нибудь знает, почему Microsoft Exchange ведет себя так? или есть какая-то настройка, которую я должен использовать?

Это странно, потому что не все n транслитерируются, а не в определенной позиции.

Попробуйте вызвать $this->email->set_crlf( "\r\n" ); также. Просмотрите информацию о сообщениях в Exchange и проверьте Content-Type и Charset / Encoding – разместите здесь необработанную вещь, чтобы мы могли ее осмотреть.

Я нашел это в базе знаний Microsoft :

Microsoft Exchange использует расширенный набор символов. Набор символов MIME по умолчанию для Microsoft Exchange – ISO 8859-1. Некоторые шлюзы не поддерживают то, как этот набор символов выдает мягкий возврат для линейных каналов. Когда это происходит, каждая строка заканчивается знаком равенства, показывающим разрыв строки, где заканчивается поддержка длины строки шлюза.

Я решил это (kinda), установив $charlim = '998' в функцию _prep_quoted_printable .

Когда я устанавливаю $crlf = "\r\n" получившееся сообщение по какой-то причине полностью исказилось. Но я заметил, что знаки = появлялись с регулярными интервалами, что было вызвано длиной линии, равной 76 символам. Таким образом, увеличение максимальных символов на строку (998 – это предел RFC2822) решает проблему, если у вас нет действительно длинных строк.