【问题标题】:PHP Mail function and foreign domainsPHP Mail 功能和外域
【发布时间】:2012-05-14 04:49:40
【问题描述】:

PHP 邮件功能似乎在将电子邮件发送到:@domain.edu.ag 时出现问题。函数是否支持外域?

该域托管在 Google Apps 上,因此应该以相同的方式接收邮件。垃圾邮件中没有消息可以引导我进一步探索。所以我创建了一个测试脚本来发送邮件,并注意到邮件似乎没有发送。

这是我用于测试目的的:

<?php
    $to = "mymail@domain.edu.ag,mymail@gmail.com";
    $subject = "Hi!";
    $body = "Hi,\n\nHow are you?";
    if (mail($to, $subject, $body)) {
    echo("<p>Message successfully sent!</p>");
    } else {
    echo("<p>Message delivery failed...</p>");
    }
    ?>

结果是收到了@gmail 消息,但没有收到@edu.ag 电子邮件地址。这里发生了什么?没有错误或任何东西,并且从其他发件人那里收到的邮件也很好。

【问题讨论】:

  • 不,PHP 的 mail() 函数对外国域没有问题。 Mail() 只使用系统配置的任何内容(例如 sendmail),因此您最好检查系统日志以及您发送给可能会阻止或拒绝您的测试的主机。
  • 如果在 $to 字符串中交换电子邮件地址会发生什么?发给 gmail 的电子邮件是否仍会发送,而 .edu.ag 的电子邮件是否未到达?如果你只是发送到 .edu.ag 地址怎么样?

标签: php email phpmailer


【解决方案1】:

尝试这样做:

$to = array("mymail@domain.edu.ag", "mymail@gmail.com");
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

foreach($to as $to_addr) {
    mail($to_addr, $subject, $body)
}

因此,您正在遍历数组中的电子邮件地址,并为每个电子邮件地址发送邮件声明。过去我在使用带逗号的常规字符串时遇到了一些麻烦。

【讨论】:

  • 谢谢,但根本问题是即使我将邮件发送到 1 个电子邮件地址然后用另一个替换它,gmail 被接收但不是外国域。这不奇怪吗?
猜你喜欢
  • 1970-01-01
  • 2016-06-27
  • 2016-02-18
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多