什么时候应该选择简单的 php 邮件,什么时候应该使用 loggin+password 进行 smpt?

什么时候应该选择简单的 php 邮件,什么时候应该使用 loggin+password 进行 smpt?

我的案例:需要每天向主 Gmail 帐户发送 1,000 条消息的 Web 应用程序。

(只需发送电子邮件,无需接收邮件-电子邮件客户端)

1. 选择权- 使用 php 邮件功能 + sendmail + 配置 php.ini

PHP示例:

<?php
$to      = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
    'Reply-To: [email protected]' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

php.ini 配置(ubuntu):

sendmail_path = /usr/sbin/sendmail -t -i

优点:不需要电子邮件帐户,易于设置

缺点:?


2. 选项- 使用 Zend_Mail + smpt 上的传输 + 密码自动 php 示例(需要包含 Zend_Mail 类):

$config = array('auth' => 'login',
                  'username' => 'myusername',
                  'password' => 'password');
  $transport = new Zend_Mail_Transport_Smtp('mail.server.com', $config);
  $mail = new Zend_Mail();
  $mail->setBodyText('This is the text of the mail.');
  $mail->setFrom('[email protected]', 'Some Sender');
  $mail->addTo('[email protected]', 'Some Recipient');
  $mail->setSubject('TestSubject');
  $mail->send($transport);

优点:?

缺点:?

问题:

  1. 1 个选项会被 Gmail 电子邮件服务器过滤为垃圾邮件吗?

  2. 您能否为上述选项添加优点和缺点

谢谢

答案1

这两个选项都可能被 Google 过滤为垃圾邮件。设置Google 的群发发件人指南。

选项 1 设置起来更简单,并且不会收集未送达的消息。

选项 2 更可靠,并且会收集未送达的消息以及消息未送达的原因。

编辑:无论您使用哪个选项,最好使用经过身份验证的 Gmail 连接。(使用您的凭据登录。)

我的电子邮件所用的规则 Google 也可能适用。

在 HELO 命令中使用以下任何内容的主机始终是垃圾邮件。(这些规则仅适用于未经身份验证的邮件提交。)

  • 不合格的主机名(示例)。
  • 我的域名或 IP 地址。
  • 任何其他 IP 地址(192.0.2.10)。
  • 域文字([192.0.2.10])。
  • 存在 SPF 记录,禁止使用 IP 地址发送电子邮件:Helo 命令中的域;或 IP 地址的 PTR 记录返回的域。

最有可能不发送垃圾邮件的主机满足以下所有条件:

  • rDNS 配置为 PTR(192.0.2.10)-> A(mail.example.com)-> PTR(192.0.2.10)。
  • 在 Helo 命令 (mail.example.com) 中使用其 FQDN (完全限定域名)。
  • FQDN 不是二级域名 (example.com)。
  • FQDN 具有允许其用作主机的 SPF 记录('v=spf1 a -all')。

答案2

如果您可以控制托管域名的整个服务器,则可以查看邮件日志。Google 通常会在拒绝邮件时提供链接,告诉您拒绝邮件的原因,从而提供良好的反馈。

如果您发送了大量电子邮件,而 Google 不认识您,也不了解您的 MTA,那么他们会在发送一定数量的邮件后限制您的 IP 地址。他们将继续拒绝来自您的邮件服务器的所有电子邮件,直到时间过去。

一般来说,使用普通 PHP 发送电子邮件应该没有问题。

相关内容