我在向用户发送电子邮件后正在处理CakePHP3保存表单。
Gmail帐户接收电子邮件时没有任何障碍但是在向Yahoo地址发送电子邮件时。电子邮件未在雅虎帐户用户处收到。
我使用默认的Cake Email
类来发送CakePHP 3提供的电子邮件。我没有做任何其他配置来发送电子邮件只是使用下面的代码。
任何帮助都将被挪用。 提前谢谢。
$email = new Email();
$email->setFrom(['me@example.com' => 'abc'])
->setTo('abc@yahoo.com')
->emailFormat('html')
->setSubject('Subject')
->send('Subject');
答案 0 :(得分:1)
如果您的电子邮件已经发送 - 我们知道,因为它已经到达Gmail帐户 - 并且雅虎地址没有收到,这很可能意味着,雅虎认为发件人不值得信任。请检查SPAM文件夹。这不是CakePHP问题。
CakePHP默认使用PHP mail
函数。您还可以使用受信任的SMTP
服务器来发送邮件,这将增加成功投放的机会。
答案 1 :(得分:0)
如果Gmail正在接收该电子邮件,但雅虎不是,那么它暗示您的电子邮件被雅虎视为垃圾邮件。雅虎这样做可能有很多原因(这里有太多原因),但请确保使用受信任的SMTP服务器来发送电子邮件而不是依赖您的服务器(默认情况下,CakePHP将使用mail()
,这不是'太棒了)。发送文本和HTML格式的电子邮件而不仅仅是后者,这也是一个好主意;这在CakePHP中是非常可行的。
您可能会发现Sendgrid的这篇文章很有用:10 Tips to Keep Email Out of the Spam Folder。
答案 2 :(得分:0)
特别是对于雅虎(以及任何电子邮件发送的良好做法),您需要正确的服务器和身份识别设置才能使邮件进入用户的收件箱。
您使用的是本地SMTP服务器吗?如果是这样,则需要在您发送的域的SPF记录中正确设置(外部)IP地址。
您可以注册雅虎反馈循环,找出您的电子邮件的位置 - https://help.yahoo.com/kb/SLN3438.html