Yii 2 Swiftmailer通过电子邮件发送垃圾邮件

时间:2019-04-11 12:19:09

标签: yii2 swiftmailer spam

我正在使用Swiftmailer发送HTML,有时还会发送文本电子邮件。 电子邮件有时会最终出现在收件人的“垃圾邮件”文件夹中。 我正在使用SMTP传输连接到远程邮件服务器以发送电子邮件。

我们有一个托管在域上的Web应用程序,它将连接到用户的电子邮件地址并进行身份验证,然后发送电子邮件。

我似乎无法弄清楚为什么某些电子邮件最终落入“垃圾邮件”或“垃圾邮件”文件夹中?

这是我的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并根据需要使用它来添加Text / HTML内容,然后调用$ message-> send()

我的标题正确吗?会导致邮件发垃圾邮件吗?

我已经通过Stackoverflow进行了搜索,并添加了我在其他Stackoverflow帖子中找到的Header。似乎有所帮助,但邮件仍然会成为垃圾邮件。

我想让我的邮件不发垃圾邮件或垃圾邮件。

任何建议将不胜感激

谢谢!

0 个答案:

没有答案