我正在尝试从我的PHP应用程序发送邮件。以下是我的代码。
<?php
error_reporting (E_ALL);
ini_set ('SMTP', 'smtp.live.com');
ini_set ('smtp_port', '587');
ini_set ('sendmail_from', 'mymail@hotmail.com');
$to = "urmail@hotmail.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$headers = "From:mymail@hotmail.com\r\n";
$headers .= "X-Mailer: php\r\n";
$headers .= "Reply-To:mymail@hotmail.com\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$result = mail($to,$subject,$message,$headers);
if($result)
{
echo "Mail Sent.";
}
else
{
echo ("error");
}
?>
它给了我“邮件发送”的消息,所以我希望收到邮件......但不要。假设收到邮件可能有延迟,我现在等了3天。还检查了我的垃圾,但没有...所以我相信我的代码不发送邮件....不知道为什么。
我可能会错过某些设置......但由于这是我第一次使用PHP邮件,我不知道缺少什么设置。在阅读Mail的文档后...没有找到任何此类要求/设置。任何帮助将非常感激。
答案 0 :(得分:0)
如果你不介意使用PHPMailer lib试试这个:
<?php
require("PHPMailer_5.2.4/class.phpmailer.php");
$mail = new PHPMailer();
$mail->SMTPDebug = true;
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // SMTP authentication
$mail->Host = "StartTLS://smtp.live.com"; // SMTP server
$mail->Port = 587; // SMTP Port
$mail->Username = "username"; // SMTP account username
$mail->Password = "xxx"; // SMTP account password
$mail->SetFrom('from_emailid', 'yourname'); // FROM
$mail->AddReplyTo('replyto_emailid', 'name'); // Reply TO
$mail->AddAddress('recepeint_emailid'); // recipient email
$mail->Subject = "First SMTP Message"; // email subject
$mail->Body = "Hi! \n\n This is my first e-mail sent through live SMTP using PHPMailer.";
if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent.';
}
答案 1 :(得分:-1)
如果没有自己进行身份验证,则无法使用smtp.live.com。