我正在尝试通过php发送电子邮件
以下是代码:
<?php
//define the receiver of the email
$to = 'xxx@example.com';
//define the subject of the email
$subject = 'Test email';
//define the message to be sent. Each line should be separated with \n
$message = "Hello World!\n\nThis is my first mail.";
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: xxx@example.com";
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
?>
但是我的电子邮件中未收到该消息。
答案 0 :(得分:1)
您是在本地计算机上还是在具有SMTP可用性的Web服务器上执行此脚本?如果它在您自己的计算机上,您可能没有可以使用的邮件服务器。
考虑使用PHPMailer,它比原生mail()
功能更强大,并且包括集成的SMTP支持:https://github.com/PHPMailer/PHPMailer
答案 1 :(得分:1)
使用@来抑制错误消息不是一个好主意,您需要查看这些错误。
如果您在本地测试,则需要运行邮件服务器。我使用Test Mail Server Tool,这很简单。
另请注意,mail()返回true
并不表示邮件已成功发送,只是执行该命令未产生错误:
如果邮件成功接受传递,则返回TRUE,FALSE 否则。
重要的是要注意,因为邮件被接受了 交付,并不意味着邮件实际上会达到预期的目的 目的地。
答案 2 :(得分:0)
这是我的工作代码:
mail($address, $subject, $message, "From: Service <service@service.net>\n".
"MIME-Version: 1.0\n".
"Content-type: text/plain; charset=\"UTF-8\"\n");
标题中的正确回车可能很重要