使用php发送邮件

时间:2012-10-02 16:24:17

标签: php smtp

我在这里看到过类似的问题但是,我不能解决我的问题。 我正在尝试使用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内部服务器错误错误。“

1 个答案:

答案 0 :(得分:0)

您是否设置了外发邮件服务器?如果您在Windows中运行,则需要一个SMTP服务器,如果您需要sendmail或类似的Linux配置并在本地运行。

SMTP错误消息表明它是一个开放的转发器 - 因为它不会让任何人要求它向某人/其他地方发送电子邮件......这很好,因为垃圾邮件发送者会如果它是使用它。它可能需要某种身份验证(您的用户名/密码),除了电子邮件,以便传递给除机器本地之外的任何人(如在机器上托管的域的电子邮件地址)。

不幸的是,PHP mail()方法无法处理,因此您需要查看第三方软件包 - PEAR mailPHPMailer是不错的选择。

使用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();