安装 php mail() 函数

安装 php mail() 函数

我最近使用极简安装设置了 CentOS 6.4 服务器。我有一个正在运行的 PHP 工作版本,但我希望能够mail()在 PHP 中使用该函数。

  • 我需要什么才能使其工作(邮件服务器,脚本,需要什么?)
  • 我该如何继续安装所需的内容?

答案1

发送电子邮件是一个复杂的话题,因为反垃圾邮件措施越来越严格。我建议使用 SMTP 和第三方提供商发送电子邮件。大多数情况下,您已经有了为您的项目发送和接收电子邮件的方法(即包含在您的域或网站托管中)。我将在下面解释“如何”和“为什么”。

如何使用 SSMTP 发送邮件?

多种选择:

  1. 邮件传输协议

这是一个小工具,它将“sendmail”二进制文件公开给 PHP 的 mail() 函数。安装它并使用 /etc/ssmtp/ssmtp.conf 文件对其进行配置。以下是使用 SSMTP 和 SSL 发送邮件的示例:

mailhub=smtp.yourprovider.com:465
hostname=yourdomain.com
AuthUser=yourusername
AuthPass=yourpassword
FromLineOverride=NO
UseTLS=yes

当使用 mail() 函数发送邮件时,php 将调用 sendmail 二进制文件,并且 ssmtp 将使用 SMTP 透明地发送电子邮件。

  1. Postfix/Exim/Sendmail

您可以为您的系统配置一个标准邮件服务器,并将其配置为通过第三方提供商转发您的电子邮件。这比 ssmtp 稍微复杂一些,但允许在本地主机 SMTP 端口 25 上接受电子邮件。只需在 Google 上搜索 smtp 中继和您的邮件服务器名称即可。

  1. phpmailer 插件

当您创建自己的项目并且可以修改代码时,您应该使用 PHPMailer 类,因为使用普通邮件功能发送包含 html 内容、附件或发送给多个发件人的电子邮件非常复杂,绝对不推荐初学者使用。

PHPMailer 本身可以使用 SMTP 发送邮件,也可以配合 ssmtp 工具使用。

为什么发送电子邮件很复杂?

正如我之前所说,反垃圾邮件措施正变得越来越严厉。要做到这一点,您必须设置一个邮件守护程序(如 postfix、exim 或 sendmail)并正确配置它。即,您需要确保没有人可以在未经身份验证的情况下使用您的邮件服务器发送邮件。您必须配置域的 MX 记录以指向您的服务器 ip,因为其他邮件服务器使用 MX 记录验证您的发件人 ip。您可能必须设置 DKIM(域密钥识别邮件)以防止您的邮件被归类为垃圾邮件。

如果您已正确设置服务器和域,那么您还没有完成。乐趣才刚刚开始。

如果您开始向不同的邮件提供商发送电子邮件,一些收件人可能会将您的电子邮件标记为垃圾邮件。这种情况不仅发生在新闻通讯和广告上,有些人还会将自动注册确认标记为垃圾邮件。如果您的许多电子邮件在微软、谷歌或 GMX 等大型电子邮件提供商上被标记为垃圾邮件,他们会阻止您的 IP 地址或将其归类为垃圾邮件。然后您必须与微软和其他公司签约并调查您的 IP 地址的删除情况。这可能是一项耗时的任务。

也可能发生这样的情况:您的项目遭到黑客攻击,您的 IP 正在发送数百万封电子邮件。如果发生这种情况,您可能很难清除不良的 IP 声誉。您应该配置发送限制,以限制黑客滥用您的 mail() 函数的影响。

第三方提供商将为您完成所有这些工作。他们将正确配置邮件服务器,保持 IP 信誉良好,还将阻止您发送垃圾邮件。

相关内容