使用PHP“邮件”功能时出现“无加密”错误

时间:2018-04-04 19:05:14

标签: php encryption

构建当前没有“https”的网站。

尝试测试发送验证电子邮件的登录方案。

尝试了PHP的mail()功能,除了电子邮件在接收者的Gmail中进入Spam之外,它才有效。 (这是我第一次玩mail())。

问题:在网站上使用SSL(启用“https”)会解决此问题吗?如果没有,那会是什么? (意识到使用类似PHPMailer的东西更好,但<?php $to="receiver's email address"; $subject="sub: test mail from mail1.php"; $body="body: test mail from mail1.php"; $from = "sender's email address"; $headers = "From:".$from; mail($to,$subject,$body,$headers); ?> 实现起来要简单得多,所以更愿意使用它 - 如果可能的话.--

错误: screen capture of "No encryption" message in email inside Gmail Spam Folder

脚本:

Get-MockedData -MockFunctionName <name> -MockFunctionParameters @{Parameter1 = "SomeParameter}

2 个答案:

答案 0 :(得分:2)

  

在我的网站上使用SSL(启用“https”)会解决这个问题吗?

没有。收件人服务器是否将您的电子邮件视为垃圾邮件与发送邮件的服务器上的网站是否使用HTTPS无关。加密投诉与您的本地电子邮件服务器有关,而不是您的Web服务器。

  

如果没有,那会是什么?

请注意,您的电子邮件位于垃圾邮件文件夹中并不一定是因为缺少加密。在本地电子邮件服务器上实施加密可能有所帮助,但可能会很麻烦 - 您必须参考您正在运行的任何电子邮件服务器的文档。

您可以通过实施SPF和DKIM来提高您的机会。

PHPMailer不一定会更好。我推荐像MailGun这样的邮件服务。他们将为您处理SSL,并提供反弹检测等服务。

答案 1 :(得分:-1)

尝试在mail()函数之前发送标头,例如:

$header = "From: noreply@example.com\r\n"; 
$header.= "MIME-Version: 1.0\r\n"; 
$header.= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$header.= "X-Priority: 1\r\n";

.
.
.
mail($to,$subject,$body,$headers);

如果这不能解决您的问题。请尝试使用PHPMailer。

https://github.com/PHPMailer/PHPMailer

下载图书馆