ZF1 и ZF2, отправка нескольких частей в письме неправильно обрабатывается на разных почтовых клиентах, таких как outlook

Я пытаюсь отправить электронное письмо, которое состоит из нескольких частей. Это электронное письмо отображается правильно в Gmail, Thunderbird, но не так, как ожидалось в почтовом клиенте Outlook. В почтовом клиенте Outlook первая часть письма отображается как содержимое, а остальные части как вложение (т. Е. Одно вложение на часть). Примеры фрагментов кода:

namespace MyProject\Service;

use Zend\Mime\Part as MimePart;
use Zend\Mime\Message as MimeMessage;
use Zend\Mail\Message;
use Zend\Mail\Transport\Sendmail;

class MailService
{
    /**
     * @throws \Exception
     */
    public function sendMail() : void
    {
        $htmlPart1 = new MimePart('<html>
        <body>
        <table>
            <tr><td>Test data 1</td></tr>
            <tr><td>Test data 1</td></tr>
            <tr><td>Test data 1</td></tr>
            <tr><td>Test data 1</td></tr>
            <tr><td>Test data 1</td></tr><tr>
            <td>Test data 1</td></tr>
        </table>
        </body>
        </html>');

        $htmlPart1->type = 'text/html';

        $htmlPart2 = new MimePart('<html>
        <body>
        <table>
            <tr><td>Test data 2</td></tr>
            <tr><td>Test data 2</td></tr>
            <tr><td>Test data 2</td></tr>
            <tr><td>Test data 2</td></tr>
            <tr><td>Test data 2</td></tr><tr>
                <td>Test data 2</td></tr>
        </table>
        </body>
        </html>');
        $htmlPart2->type = 'text/html';

        $body = new MimeMessage();
        $body->setParts(array($htmlPart1, $htmlPart2));

        $mail = new Message();
        $mail->setBody($body);
        $mail->setFrom('Freeaqingme@example.org', 'Sender\'s name');
        $mail->addTo(<SOME_OUTLOOK_EMAIL>, 'Name');
        $mail->addTo(<SOME_GMAIL_EMAIL>, 'Name');

        $mail->setSubject('TestSubject');
        try{
            $transport = new Sendmail();
            $transport->send($mail);
        } catch (\Exception $e){
            throw $e;
        }
    }
}

В приведенном фрагменте, <SOME_OUTLOOK_EMAIL> = некоторая существующая электронная почта перспективы и <SOME_GMAIL_EMAIL> = какой-то существующий адрес электронной почты Gmail.

Обратите внимание, что приведенный выше фрагмент разработан с использованием ZF2. У нас также были те же проблемы, когда мы использовали ZF1 ранее в нашем проекте.

Когда мы искали решение, мы столкнулись с сообщением о проблеме ZF1, но пока не смогли определить правильное решение. Другими словами, относится ли это к почтовым библиотекам ZF или к серверам обмена / почтовому клиенту, которые не могут быть обработаны с помощью исходного кода.

Было бы очень полезно, если кто-нибудь может помочь мне решить мою проблему.

0 ответов

Другие вопросы по тегам