PHP mail() 函数不发送电子邮件

标签 php email

我正在尝试使用 mail() PHP 函数发送电子邮件。我让它工作,直到我试图给它一个“用户注册”的主题,然后邮件没有发送!

这是代码(大大简化了它)

$to = $this->post_data['register-email'];
$message = 'Hello etc';
$headers = 'From: noreply@example.com' . "\r\n" ;
$headers .= 'Content-type: text/html; chareset=iso-8859-1\r\n';
$headers .= 'From: Website <admin@example.com>';
mail($to, 'User Registration', $message, $headers);

我还尝试使用包含文本字符串的变量,但没有用。

为什么我添加主题异常(exception)后邮件没有发送?

谢谢

编辑:更新后的代码仍然无法正常工作

$to = $this->post_data['register-email'];
$message = 'Hello etc';

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= 'From: Website <admin@example.com>';
mail($to, 'User Registration', $message, $headers);

最佳答案

在第 4 行,您使用 ' 将其中的所有内容作为字符串处理,因此请更改

$headers .= 'Content-type: text/html; chareset=iso-8859-1\r\n';

收件人:

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

如评论中所述,将 chareset 更改为 charset

编辑:

如果您根据documentation 发送txt/html 邮件也可以在标题中设置 mime,所以试试这个

    $to = $this->post_data['register-email'];
    $message = 'Hello etc';

    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= 'From: Website <admin@example.com>' . "\r\n";
    mail($to, 'User Registration', $message, $headers);

如果还是不行你可以尝试调试你的代码,简单的添加

error_reporting(E_ALL);
ini_set('display_errors', '1');

在页面顶部,然后从那里开始,如果您仍然不能自己解决它,请将其张贴在这里,我会尽力帮助您。

关于PHP mail() 函数不发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18854572/

相关文章:

php - 如何正确延迟 laravel 中的每 100 封邮件

php - 插入在第一个瑞典 UTF-8 字符处被截断

php - 站点优化 - 使用 cookie 还是使用我们的数据库?

php - 上传图片时在数据库中保存完整的 URL 链接

python - 使用 Bluehost 电子邮件服务器的 Django 电子邮件配置

javascript - 如何使用正则表达式在 javascript 中针对 php 电子邮件注入(inject)验证电子邮件地址?

http - 有没有办法将传入的电子邮件转换为 HTTP POST 请求?

PHPMailer 无法连接 ot 服务器

php - 如何插入新行并更新旧行值?

php - 使用 jquery php 自动发送电子邮件通知