дополнительные новые строки в текстовых электронных письмах, отправленных через sendgrid - PullRequest
3 голосов
/ 08 июня 2011

Мы отправляем электронные письма в виде простого текста из 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-реле, я изменяю конфиг postfix, только SendGrid дает дополнительные символы новой строки, все остальные опции SMTP работают нормально.Если я дам сообщение по электронной почте с помощью функции отладки класса электронной почты CodeIgniter, перед отправкой в ​​постфикс он будет выглядеть нормально.

Альтернативная настройка: сценарий PHP (либо класс почты CI, либо PHPMialer) -> внешнее реле SMTP -> ....

Для проверки различных SMTP-реле я изменяю настройки SMTP в конфигурации электронной почты CI или конфигурации PHPMialer.Только SendGrid дает дополнительные символы новой строки, все остальные опции SMTP работают нормально.

Насколько я могу видеть, вариантов не так много, чтобы играть с ними.Я пробовал "utf-8" и "ISO-что-то или другое", все новые строки на нашей стороне "\ r \ n" ...... кажутся где-то очень неясной ошибкой где-то.

Любые идеи

Ответы [ 2 ]

3 голосов
/ 08 июня 2011

ОК, немного больше экспериментов, и эти настройки позволяют отправлять обычные текстовые сообщения через SendGrid из PHPMailer:

    $mailer->CharSet    = "utf-8";
    $mailer->LE         = "\r\n";
    $mailer->Encoding   = "quoted-printable";
    $mailer->WordWrap   = 80;

Ключ "цитируемая для печати" - это ключ.

1 голос
/ 15 декабря 2014

Для меня сработало использование фактических разрывов строк в тексте PHP следующим образом:

    // Prepare email
    $email = array(
        'api_user'  => App::emailAPIUser(),
        'api_key'   => App::emailAPIPwd(),
        'to'        => $email,
        'subject'   => 'Thank you for entering ' . App::name(),
        'html'      => $email_body,
        'text'      => '

Thank you for entering Competition. 

You are now in the running to WIN your prices valued at $6000. 

Winners will be notified of their status by the 14th February 2012. 

Good luck!',
        'from'      => 'competitions@company.com'
    );
...