$to = "jijodasgupta@gmail.com";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
echo("pMessage successfully sent!/p");
} else {
echo("pMessage delivery failed.../p");
}
写了一个基本的php sendmail代码,但它给了我以下错误:
警告:mail()[function.mail]:“sendmail_from”未在php.ini中设置或 第5行的C:\ xampp \ htdocs \ mail.php中缺少自定义“From:”标头 邮件传递失败......
我更改了``php.ini文件并放了sendmail_from=jijodasgupta@gmail.com
,但问题仍然存在。
第一次编写邮件脚本。
我做错了吗?有更好的方法吗?
答案 0 :(得分:2)
additional_headers(可选)
要插入的字符串 电子邮件标题。
这通常用于添加额外的 标题(From,Cc和Bcc)。多 额外的标题应该用 一个CRLF(\ r \ n)。
注意:发送邮件时,邮件必须 包含From标头。这可以设置 使用additional_headers参数, 或者可以在php.ini中设置默认值。 如果不这样做将导致 类似于警告的错误消息: mail():“sendmail_from”未设置 php.ini或自定义“From:”标题 失踪。 From标头也设置 Windows下的返回路径。
我希望有所帮助。
答案 1 :(得分:1)
首先,检查编辑了正确的php.ini - 将phpinfo();
添加到脚本输出诊断信息中,包括php.ini的位置。您也应该能够在此处看到配置的“sendmail_from”值。
如果失败,请提供一个From标头,如usoban
所示$hdrs="From: jijodasgupta@gmail.com";
mail($to, $subject, $body, $hdrs);
答案 2 :(得分:1)
如果您编辑了正确的php.ini并且它没有反映您的更改,您可能需要重新启动您的Web服务,因为许多环境只会在服务器启动时加载php.ini。
答案 3 :(得分:1)
我遇到了同样的问题,最后因为我的服务器使用account@servername
作为来自电子邮件地址,即使我在标题中指定了自己的。
我在其他地方找到的答案是在邮件调用中添加第5个参数以强制系统使用我指定的发件人电子邮件地址:
$from = 'fromemail@domain.com'
$xheaders = "From: " . $from . " <" . $from . ">\n";
$i = mail("$useremail","$subject","$content",$xheaders,'-f fromemail@domain.com');
答案 4 :(得分:0)
不是在php.ini中设置表单地址,而是将其发送到像usoban所说的标题中。
当您在同一设置上托管另一个网站并忘记下次设置标题时,这会让您头疼。
答案 5 :(得分:0)
PHP mail()函数会产生很多问题。当您最终在服务器上运行时,您会注意到您的电子邮件最终会出现在用户的垃圾邮件文件夹中。
我建议使用其中一个PHP SMTP库发送邮件: