Мы отправляем электронные письма в виде простого текста с PHP, используя CodeIgniter (v1.7), а также PHPMailer (v5.1). Текущая производственная установка использует дешевый ретранслятор SMTP, план состоит в том, чтобы переключиться на CritSend или SendGrid. Сейчас мы тестируем варианты с сервера Rackspace Cloud.
Когда мы используем SendGrid SMTP, все новые строки "\r\n" в emials в конечном итоге удваиваются, поэтому в итоге получается "\r\n\r\n".
Все работает нормально при использовании CritSend SMTP, а также двух других SMTP-серверов.
Техническая поддержка SendGrid не думает, что это как-то связано с их системой, но слышала о другом клиенте с такой же проблемой, и, по-видимому, она была решена путем изменения конфигурации на стороне клиента.
Кто-нибудь испытал это?
Для нас это не критично, так как CritSend работает хорошо и кажется не хуже SendGrid по функциям, поэтому мы будем использовать их. НО, будучи любопытным типом, я просто не могу оставить это :-)
Обычная установка: PHP-скрипт -> sendmail/Postfix -> внешнее реле SMTP -> ....
Чтобы протестировать различные реле SMTP, я меняю конфигурацию постфикса, только SendGrid дает дополнительные символы новой строки, все остальные параметры SMTP работают нормально. Если я сброшу электронное письмо с помощью функции отладки класса электронной почты CodeIgniter, оно выглядит нормально, прежде чем оно перейдет к постфиксу.
Альтернативная установка: PHP-скрипт (либо почтовый класс CI, либо PHPMialer) -> внешний ретранслятор SMTP -> ....
Чтобы протестировать различные ретрансляторы SMTP, я изменяю настройки SMTP в конфигурации электронной почты CI или в конфигурации PHPMialer. Только SendGrid дает дополнительные символы новой строки, все остальные параметры SMTP работают нормально.
Насколько я вижу, вариантов игры не так много. Я пробовал "utf-8" и "ISO-что-то или другое", все новые строки на нашей стороне "\r\n"...... кажется, что где-то очень неясная ошибка.
Любые идеи?