为什么使用 PHP 发送电子邮件这么难?

为什么使用 PHP 发送电子邮件这么难?

这不是编码问题,所以我认为“超级用户”是发布此问题的最佳位置。

我已经尝试使用 PHP 发送电子邮件大约 1 周了,但仍然没有成功。到目前为止我的故事:

  1. 尝试联系我的托管公司,了解将 SMTP 服务器/端口放入我的“php.ini”中以发送邮件的信息。他们回答说我有一个非托管的专用服务器,这意味着我要么支付他们的额外服务费用,要么自己去。

  2. 尝试使用我在 Google 上找到的随机 PHP 脚本,不知道它们如何工作,但它们总是出现在垃圾邮件文件夹中,并且经常被像 hotmail 这样的大型邮件系统忽略(大多数时候它们甚至根本不会出现)

  3. 我尝试了使用 Google SMTP 服务器的 PHPMailer 类,但出于某种原因,一旦我在 PHP 脚本中输入密码,Google 就会冻结并阻止对我创建的任何 Gmail 帐户的访问。我无法再使用该帐户。

  4. 我现在只剩下一个选择,托管我自己的 SMTP 服务器?但不知道如何做,而且似乎有很多工作要做。我可能需要几周的时间来了解它的工作原理,然后才能决定这是不是一个好主意。

为什么使用 PHP 免费发送一封简单的“Hello World”电子邮件如此困难?你们能给我推荐什么来解决这个问题?我应该尝试托管自己的 SMTP 服务器吗?(我有一个静态 IP 和一个 .com 域名)

答案1

通过 php 发送电子邮件很容易...我认为您的问题更多是关于如何将电子邮件发送给收件人......

在 Google 上搜索“电子邮件传递率”,然后查看这篇文章:

https://stackoverflow.com/questions/4960582/help-registration-emails-go-to-spam-inbox

此外,使用信誉良好的(付费) smtp 服务可以帮助......Sendgrid、socketlabs、authsmtp 等(我都用过这三种)

答案2

  1. PHP 脚本不一定需要 SMTP 服务器来发送邮件。您甚至可以从命令行“手动”发送电子邮件。SMTP 是专门为此设计的。

  2. 电子邮件可能由于多种原因而被归入垃圾邮件文件夹,这些原因大致可分为两类:

    根据电子邮件本身进行过滤

    “值得信赖”的电子邮件应有主题、正确的标头、多部分邮件而非纯 HTML 邮件、包含最少量的文本并避免使用大图像和一些触发词。具体细节取决于垃圾邮件过滤器的配置。

    这将部分依赖于 PHP 脚本。

    根据主机进行过滤

    在收到来信时,许多垃圾邮件过滤器会检查 IP(或主机名或发件人域)是否被列入黑名单(检查这里)或列入白名单(应用,例如,这里) 在某些实时列表中,如果主机被允许从该域发送电子邮件(防晒指数)并且如果允许特定服务器这样做(密钥管理信息系统)。

  3. 最近有一个教程这里如何做到这一点。

    线路

    $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
    

    似乎特别重要,因为它不是大多数 PHPMailer 教程的一部分,并且无法使用 SSL可以成为封锁 Google 帐户的原因。

  4. 如果您在通过 PHP 发送邮件的同一台机器上托管 SMTP 服务器,那么您会遇到完全相同的问题。

为什么使用 PHP 免费发送一封简单的“Hello World”电子邮件如此困难?

垃圾邮件。很多。根据Trustwave 的垃圾邮件统计数据,几乎每四封电子邮件中就有三封是垃圾邮件。这需要相当严格的过滤措施,以防止我们所有人都被垃圾邮件淹没。

相关内容