1

我正在编写一个脚本,该脚本将通过电子邮件发送文本消息(即###@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>");
}

?>

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

4

1 回答 1

0

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

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

在此处发布它的日志。

于 2012-10-18T18:16:59.277 回答