未使用PHP接收电子邮件

未使用PHP接收电子邮件

问题描述:

我想使用php代码发送一个构造电子邮件。我尝试过所有解决方案,如mail()和phpmailer,但没有任何工作。这里是我的代码mail()未使用PHP接收电子邮件

ini_set(sendmail_from, "[email protected]"); 
ini_set(SMTP, "aspmx2.googlemail.com"); 
ini_set(smtp_port, 25); 
$username = "xyz"; 
$password = "password"; 
$to=$email; 
$subject="Activate you account"; 
$message=" 
Hello $fullname, \n \n 
    "; 
$headers="From: [email protected] domainname.net"; 
mail($to, $subject, $message, $headers); 
die ("You have been registerd. Check you email to activate your account!"); 

我在页面上获得“You have been registered. Check you email to activate your account”消息,但我没有收到邮件。

我尝试没有ini_set()但它仍然无法正常工作。我也在php.ini文件中设置了SMTP和端口,但它仍然不起作用。

请帮忙!! 感谢

+0

欢迎来到俱乐部。用PHP发送电子邮件非常困难。我还没有成功。 – systemovich 2011-04-07 19:17:31

+0

[Gmail的SMTP服务器](http://mail.google.com/support/bin/answer.py?answer=13287)受SSL/TLS保护,并要求进行身份验证,这是PHP的'mail()'无法执行的操作。 – Charles 2011-04-07 19:22:45

+1

网络上的许多免费托管服务不允许您使用其他SMTP服务器发送电子邮件。如果您使用自己的PC,请确保PHP可以访问网络。检查Apache设置等。 – Hossein 2011-04-07 19:25:07

把点这里:

你打电话mail不检查返回代码 - 这意味着你知道你试图发送消息,但你不知道它是否成功。这对调试没有帮助。

其次,Gmail需要加密连接才能允许您进行身份验证。而标准的SMTP连接没有加密。

尝试使用PHPmailer发送电子邮件 我听说过很多很棒的事情。 PHPMailer的配置的

样品

$mail->Mailer = "smtp"; 
$mail->Host = "ssl://smtp.gmail.com"; 
$mail->Port = 465; 
$mail->SMTPAuth = true; // turn on SMTP authentication 
$mail->Username = "[email protected]"; // SMTP username 
$mail->Password = "password"; // SMTP password 
+0

我用phpmailer发送电子邮件。如果我使用$ host =“ssl://smtp.gmail.com”;和$ port = 465;然后我成功地收到电子邮件但如果我使用相同的脚本$ host =“aspmx2.googlemail.com”;和$ port =“25”;然后得到错误,“SMTP错误:无法连接到SMTP主机。邮件错误:SMTP错误:无法连接到SMTP主机。”任何建议?请帮忙 – user695575 2011-04-08 00:16:55

+0

第一种方法是发送电子邮件的正确方式,那就是你应该怎么做! – Aviatrix 2011-04-09 16:23:37

你不实际设置的mail()呼叫的用户名/密码。你所做的只是设置一些变量,然后不以任何方式为邮件使用这些变量。因此,您尝试通过Google发送邮件失败,因为您没有进行身份验证。

但正如其他答案所说,不要使用内置的mail()函数。改为使用PHPMailerSwiftmailer。它们更容易使用,处理所有做文件附件和多部分MIME邮件的丑陋的东西,并且在一个不错的OOP接口后面完成。

+0

用于swiftmailer的+1 – Tony 2011-04-07 19:28:23