【问题标题】:PHP/PEAR Mail Not Sending as Text MessagePHP/PEAR 邮件不作为文本消息发送
【发布时间】:2012-10-09 06:48:09
【问题描述】:

我正在编写一个脚本,该脚本将通过电子邮件发送文本消息(即###@txt.att.net),而 PHP 的简单 mail() 函数不起作用。我可以通过这种方法很好地发送电子邮件,但是没有发送文本。我做了更多的研究,发现运营商经常在没有发件人的情况下阻止邮件,而使用 PEAR 和 SMTP 是一个更好的解决方案。

但是,以下代码可以发送电子邮件,但仍不能发送 AT&T 短信:

<?php
require_once "Mail.php";

$from = "XXX <XXX>";
$to = "XXX <XXX@txt.att.net>";
$subject = "Test email using PHP SMTP\r\n\r\n";
$body = "This is a test email message";

$host = "XXX";
$port = "26";
$username = "XXX";
$password = "XXX";

$headers = array (
'From' => $from,
'To' => $to,
'Subject' => $subject);

$smtp = Mail::factory('smtp',
array (
'host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
} else {
  echo("<p>Message successfully sent!</p>");
}

?>

可能是标题格式不正确等问题?有什么想法吗?

【问题讨论】:

  • 嗯,cPanel 中的邮件告诉我使用 26 并且似乎使用任何一个都可以正常发送邮件。事实上,我可以完全省略端口,它工作正常。

标签: php email smtp pear


【解决方案1】:

根据他们的示例,您不需要主题后的新行:

http://pear.php.net/manual/en/package.mail.mail.send.php

检查 AT&T 的回复,如果他们将您列入黑名单或者您没有有效的 rDNS 或其他原因,他们可能会拒绝。

他们似乎在查看某些 IP 的 rDNS 记录时遇到了问题。

使用它会告诉你所有你需要的信息。

http://wordpress.org/extend/plugins/xmail-the-right-way

把它的日志贴在这里。

【讨论】:

  • 谢谢,我试过没有换行符(并且有一个空白主题),但没有运气... 什么是有效的 rDNS?当我查找当前站点时,它确实将另一个域(我的另一个域)显示为顶级域。有问题吗?
  • 只要有效就不行。你看过梨网站上的例子吗?
  • 是的,我已经尝试过该示例,但它对我根本不起作用……甚至对于普通的电子邮件地址也不行。
  • 试试这个:wordpress.org/extend/plugins/xmail-the-right-way 取出 WP 部分,只使用主类应该不难。
  • 您的代码看起来不错。如果您的电子邮件可以通过 Internet 发送到某个帐户(gmail、yahoo、您自己网络之外的任何内容),那么您将被过滤为垃圾邮件。 DNS 问题或来自您 IP 的不良邮件声誉可能是问题所在。您是否尝试过 SMTP over telnet 从您的邮件服务器 ip 到 AT&T?
猜你喜欢
  • 2011-04-05
  • 2012-07-22
  • 2021-02-13
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
  • 2010-12-02
  • 2015-09-30
相关资源
最近更新 更多