Yii 2 Swiftmailer отправляет письма спаму - PullRequest
0 голосов
/ 11 апреля 2019

Я использую Swiftmailer для отправки HTML и иногда текстовых электронных писем.Письма иногда попадают в папку «Спам» получателей.Я использую SMTP Transport для подключения к удаленному почтовому серверу для отправки электронных писем.

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

Кажется, я не могу понять, почему некоторые электронные письмаоказаться в папке «Спам» или «Нежелательная почта»?

Вот мой код конфигурации Swiftmailer:

    'mailer' => [
        'class' => 'yii\swiftmailer\Mailer',
        'useFileTransport'=>false,
        'transport' => [
            'class' => 'Swift_SmtpTransport',
            'host' => 'mail.thehostname.com',
            'username' => 'system@thehostname.com',
            'password' => 'PASSWORD_HERE',
            'port' => '465',
            'encryption' => 'ssl',
             'streamOptions' => [ 'ssl' =>
                    [ 'allow_self_signed' => true,
                        'verify_peer' => false,
                        'verify_peer_name' => false,
                    ],
                ],
        ],
    ],

При отправке действительного электронного письма - вот как я настраиваю сообщение:

        //set up the transport
        $transport = Yii::$app->mailer->getTransport();
        if($user->smtp_port=="587")
        {
            $transport
                ->setUserName($user->email)
                ->setPassword($user->imappassword)
                ->setHost($user->smtp_url)
                ->setPort($user->smtp_port)
                ->setEncryption('tls');                    
        } else {
            $transport
                ->setUserName($user->email)
                ->setPassword($user->imappassword)
                ->setHost($user->smtp_url)
                ->setPort($user->smtp_port)
                ->setEncryption('ssl');     
        }

        //setup headers
        $mid = "<".time()." TheSystem@".$_SERVER['SERVER_NAME'].">";
        $message->getSwiftMessage()->getHeaders()->addTextHeader('Organization', $user->company->name);
        $message->getSwiftMessage()->getHeaders()->addTextHeader('MIME-Version', '1.0');
        $message->getSwiftMessage()->getHeaders()->addTextHeader('X-Mailer', 'PHP v' . phpversion());
        $message->getSwiftMessage()->getHeaders()
        ->addParameterizedHeader('Content-type', 'text/html', ['charset' => 'utf-8']);
        $message->getSwiftMessage()->getHeaders()->addTextHeader('Message-ID', $mid);

        $message
            ->setFrom([$user->email=>$user->fullname]);

С этого момента $ message передается и используется по мере необходимости для добавления текста / HTML-содержимого, а затем $ message-> send () называется

Верны ли мои заголовки?Это приводит к тому, что почта переходит в спам?

Я уже просмотрел Stackoverflow и добавил заголовки, которые я нашел в других сообщениях stackoverflow.Это, кажется, немного помогло, но письма все еще идут в спам.

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

Любой совет был бы очень признателен

Спасибо!

...