我正在使用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。似乎有所帮助,但邮件仍然会成为垃圾邮件。
我想让我的邮件不发垃圾邮件或垃圾邮件。
任何建议将不胜感激
谢谢!