我的案例:需要每天向主 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 个选项会被 Gmail 电子邮件服务器过滤为垃圾邮件吗?
您能否为上述选项添加优点和缺点
谢谢
答案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 发送电子邮件应该没有问题。