繁体   English   中英

Laravel 5.2-使用专用IP通过SparkPost发送电子邮件

[英]Laravel 5.2 - Send Email Through SparkPost Using Dedicated IP

我正在做一个用Laravel 5.2编写的项目,该项目要求我通过专用IP地址发送电子邮件,以便我们可以将发件人(在本例中为SparkPost)的IP地址列入白名单,以便在非常严格的公司环境中实现可交付性反垃圾邮件规则。

我已经使用专用IP地址设置了我的SparkPost帐户,并且可以发送电子邮件,但是通过默认IP池而不是使用专用IP地址来发送电子邮件。 结果,电子邮件被标记为垃圾邮件。

这是SparkPost关于如何指定特定IP池的参考: https : //support.sparkpost.com/customer/portal/articles/2002977

我的问题是:使用Laravel的Mail::send方法时,如何指定使用专用IP?

在文档中,它指定您必须添加一个附加标头,以便它可以通过特定的ip进行路由

X-MSYS-API: { "options" : { "ip_pool" : "my_new_ip_pool" } }

否则使用默认值。

Mail::send没有提供添加其他标头的任何快捷方式,因此您必须使用基础的Swift消息。 不太确定标头的值。尝试将邮件驱动程序设置为log进行测试。

    Mail::send("template.blade",$data,function($message){
$message->getHeaders()->addTextHeader('X-MSYS-API', '{ "options" : { "ip_pool" : "my_new_ip_pool" } }')
});

Mail ::发送Laravel 5.2 SwiftMailer标头文档

如果您使用SMTP协议与SparkPost通信,Phoenix先生的响应可能会起作用,但是我的应用程序正在使用SparkPost的API。

在凤凰先生的帮助下(谢谢,顺便说一句),我能够跟踪消息的发送方式,发现TransportManager中的createSparkPostDriver方法可以根据您在其中显示的内容来配置选项。您的services.php文件位于config文件夹中。

最后,我要做的就是将以下内容添加到我的services.php文件中:

'sparkpost' => [
    'secret' => env('SPARKPOST_SECRET'),
    'options' => [
        "ip_pool" => env('SPARKPOST_IP_POOL_ID'),
    ]
],

然后将变量添加到我的.env文件中:

SPARKPOST_SECRET=abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd
SPARKPOST_IP_POOL_ID=dedicated_ip_pool

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM