我想使用php代码发送确认电子邮件。我已经尝试了所有解决方案,例如mail()
和phpmailer,但没有任何工作。这是我的mail()
ini_set(sendmail_from, "xyz@domainname.net" );
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: xyz@ 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 :(得分:4)
您实际上并未设置mail()
电话的用户名/密码。您所做的只是设置一些变量,然后不以任何方式为邮件使用这些变量。因此,您尝试通过Google发送邮件失败了,因为您没有进行身份验证。
但正如其他答案所说,不要使用内置的mail()
函数。请改用PHPMailer或Swiftmailer。它们更容易使用,处理文件附件和多部分MIME邮件的所有丑陋的东西,并在一个漂亮的OOP接口后面完成。
答案 1 :(得分:1)
点到这里:
您在不检查返回代码的情况下调用mail
- 这意味着您知道尝试发送消息,但您不知道它是否成功。这对调试没有帮助。
其次,Gmail需要加密连接才能进行身份验证。标准SMTP连接未加密。
答案 2 :(得分:0)
尝试使用PHPmailer发送电子邮件 我听说过很多很棒的事情。
PHPMailer配置示例
$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "username@gmail.com"; // SMTP username
$mail->Password = "password"; // SMTP password