2012-10-02 346 views
0

我在这里看到了类似的问题,但是,我不beign能解决我的问题。 我试图发送使用PHP邮件......但是这是行不通的。发送邮件使用PHP

<?php 
$email_from="[email protected]"; 
ini_set("sendmail_from", $email_from); 
$headers = "From: $email_from"; 
mail('[email protected]','Registration confirmation','Hihihihihihih','$headers'); 
?> 

它给了我一个Windows服务器上出现以下错误: “SMTP服务器响应:这里550没有这样的用户在”

以后A的nginx服务器上的错误:

“服务器遇到一个内部错误或配置错误,无法完成您的请求。

请与服务器管理员联系,网站管理员,并通知他们错误发生的时间,以及任何你可能会做,可能导致了错误。

有关此错误的更多信息可能在服务器错误日志中可用。

此外,试图使用ErrorDocument来处理请求时遇到一个500内部服务器错误错误。”

+1

尝试删除周围的单引号' '$ headers'' – DaveRandom

+0

仍然没有工作:'( –

+0

你不需要删除的ini_set行中ini_set行 – rsz

回答

1

你有你的发送邮件服务器设置?如果你在Windows上运行,你需要一个SMTP服务器,如果Linux上你必须配置sendmail或相似,并且在本地运行

的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("[email protected]"); 
$mail->Subject='Registration confirmation'; 
$mail->Body='Hihihihihihih'; 
$mail->AddAddress('[email protected]'); 
$mail->Send(); 
+0

非常感谢你.....它的工作.. –