PHP 邮件 () 不起作用

标签 php email

<分区>

我想编写一个带有激活邮件等的简单注册表单的脚本。但出于某种原因,mail() 没有发送电子邮件,或者我的 3 个不同的电子邮件帐户(hotmail、gmail、yahoo)没有收到它们,因此甚至没有将它们放入垃圾邮件文件夹。

代码:

<?php
    $mailto = 'xxx@example.com';
    $subject = 'the subject';
    $message = 'the message';
    $from = 'system@example.net';
    $header = 'From:'.$from;

    if(mail($mailto,$subject,$message,$header)) {
        echo 'Email on the way';
    }
?>

每次它输出“Email on the way”所以 mail() 返回 true,对吗?我真的不明白,我什至试图关闭我的小告密者(尽管我没有阻止 SMTP)。

最佳答案

参见 this article by Jeff Atwood .

简而言之:仅仅因为您的代码已将电子邮件交给邮件传输代理,并不意味着它会被送达。是的,返回 true 的 mail() 意味着“接受 投递”——这意味着“看起来像一封电子邮件,我会尝试 deliver this”,而不是“It is delivered”。连the manual for mail() says :

It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination.

Soooo:检查您的 MTA(电子邮件是从您的本地计算机发送的吗?),尝试发送到本地地址(如果该地址是本地地址,是否可以送达?),尝试发送电子邮件从您的邮件客户端,使用与您的 PHP 脚本相同的设置,尝试发送到一个较小的邮件托管商,它允许您关闭反垃圾邮件(它是在您的网络之外传递的吗?)。另外,阅读那篇文章,并检查其中提到的要点。

关于PHP 邮件 () 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403746/

相关文章:

php - 如何在 PHP 中调试多个 session ?

php - 在最短的时间内通过多个标签搜索对象

php - 在 PHP 中使用 mysql LOAD 语句失败,但通过命令行执行此操作可以

javascript - 使用 JavaScript RegExp 来验证电子邮件。正则表达式特殊字符不起作用

jquery - 通过 Python 脚本编写包含 jQuery 和 CSS 的 HTML 格式的电子邮件。

php - 插入查询-存储时间

php - Android如何实现向PHP-MySQL发送数据?

asp.net-mvc - 从 Asp.net MVC 发送 HTML 电子邮件的最佳方式是什么?

java - MsgViewer (Java) 无法打开 .msg 文件 - 批处理文件解决方案?

html - 电子邮件副标题 - 有没有一种简单的方法可以做到这一点?