我在这里看到过类似的问题但是,我不能解决我的问题。 我正在尝试使用php发送邮件......但这不起作用。
<?php
$email_from="admin@crorebook.com";
ini_set("sendmail_from", $email_from);
$headers = "From: $email_from";
mail('gitudrebel94@gmail.com','Registration confirmation','Hihihihihihih','$headers');
?>
它在Windows服务器上给出了以下错误: “SMTP服务器响应:550此处没有此类用户”
在nginx服务器上出现以下错误:
“服务器遇到内部错误或配置错误,无法完成您的请求。
请与服务器管理员,网站管理员联系,告知他们错误发生的时间,以及可能导致错误的任何操作。
服务器错误日志中可能提供了有关此错误的更多信息。
此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。“
答案 0 :(得分:0)
您是否设置了外发邮件服务器?如果您在Windows中运行,则需要一个SMTP
服务器,如果您需要sendmail
或类似的Linux配置并在本地运行。
SMTP错误消息表明它是不一个开放的转发器 - 因为它不会让任何人要求它向某人/其他地方发送电子邮件......这很好,因为垃圾邮件发送者会如果它是使用它。它可能需要某种身份验证(您的用户名/密码),除了电子邮件,以便传递给除机器本地之外的任何人(如在机器上托管的域的电子邮件地址)。
不幸的是,PHP mail()
方法无法处理,因此您需要查看第三方软件包 - PEAR mail或PHPMailer是不错的选择。
使用PHPMailer完成任务:
require_once /*lib location*/"phpmailer/class.phpmailer.php";
require_once /*lib location*/"phpmailer/class.smtp.php";
$mail=new PHPMailer();
$mail->IsSMTP();
$mail->Host=/*Your host*/;
$mail->Port=465;//For SSL - use this if you can
$mail->SMTPAuth=true;
$mail->SMTPSecure="ssl";
$mail->SMTPDebug=2;//Comment once it works, but the debug info is invaluable
$mail->Username=/*Your username*/;
$mail->Password=/*Your password*/;
$mail->setFrom("admin@crorebook.com");
$mail->Subject='Registration confirmation';
$mail->Body='Hihihihihihih';
$mail->AddAddress('gitudrebel94@gmail.com');
$mail->Send();