【问题标题】:Sending mail in PHP using Hotmail smtp使用 Hotmail smtp 在 PHP 中发送邮件
【发布时间】:2017-04-16 03:15:53
【问题描述】:

我正在尝试使用 Hotmail Smtp 在 PHP 中发送邮件。但我收到如下错误:

2014-03-13 06:59:01 CLIENT -> SERVER: EHLO site.com 
2014-03-13 06:59:01 CLIENT -> SERVER: AUTH LOGIN 
2014-03-13 06:59:01 SMTP ERROR: AUTH command failed: 504 5.3.3 AUTH mechanism LOGIN not available 
2014-03-13 06:59:01 CLIENT -> SERVER: QUIT SMTP connect() failed. Mailer Error: SMTP connect() failed.

请有人建议我做错了什么吗??

我的代码:

error_reporting(E_STRICT);
require_once('class.phpmailer.php');
include('class.smtp.php');
$mail             = new PHPMailer(); //Initialize a new PHPMailer object;
//$body            = preg_replace("[\]",'',$body); //Replace unwanted characters of the content
$mail->CharSet ="ISO-8859-1";//Set the character set you need to specify
$mail->IsSMTP(); // Use SMTP service
$mail->SMTPDebug  = 1;                     // Enable debugging for SMTP
// 1 = errors and messages
// 2 = messages only
$mail->From = 'abc@hotmail.com';
$mail->FromName = 'Name';
$mail->SMTPAuth   = true;                
$mail->SMTPSecure = "SSL";                 
$mail->Host       = 'smtp.live.com';      
$mail->Port       = '465';                         


$mail->Username   = 'abc@hotmail.com';            //Username of your email account
$mail->Password   = '***';                               //Password of your email account

$mail->SetFrom('abc@hotmail.com', 'Name');
$mail->AddReplyTo('abc@hotmail.com','Name');
$mail->Subject    = $subject;
$mail->AltBody    = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test
$mail->MsgHTML($body);
$address = $to;
$mail->AddAddress($address, '');
//$mail->AddAttachment("images/phpmailer.gif");      // attachment
//$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

//var_dump($body);
if(!$mail->Send()) {
    //echo $body;

    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
   echo "Message sent successfully!";
}

需要帮助。谢谢。

我将如何解决这个问题?任何人的帮助将不胜感激。

【问题讨论】:

  • 嗯,错误信息很清楚:LOGIN 身份验证方案不可用(未提供),您必须使用另一种(尝试PLAIN)。
  • 这是什么意思?我该怎么纠正?? @arkascha
  • 你找到解决这个问题的办法了吗?
  • 这个问题已经在下面的链接stackoverflow.com/questions/10344213/…得到了回答

标签: php email smtp hotmail


【解决方案1】:

以下对我有用:

$mail = 新 PHPMailer(); $mail->SMTPSecure = 'tls'; $mail->用户名 = "mymail@hotmail.com"; $mail->密码 = "我的密码"; $mail->AddAddress("mymail@hotmail.com"); $mail->FromName = "我的名字"; $mail->Subject = "我的主题"; $mail->Body = "我的身体"; $mail->Host = "smtp.live.com"; $邮件->端口= 587; $mail->IsSMTP(); $mail->SMTPAuth = 真; $mail->发件人 = $mail->用户名; $mail->发送();

【讨论】:

  • 当我使用它时,我得到一个错误“致命错误:C:\wamp\www 中找不到类 'PHPMailer'”可以告诉我缺少什么。试图从一个用 PHP 开发的网站向客户发送电子邮件。第一次在 php 中使用电子邮件
  • 你需要包含phpMailer类。
【解决方案2】:

Windows Live Mail 使用端口 587(启用 TLS)而不是标准的 465。

也就是说,不只是使用您的主机本地 smtp 服务器吗?这样您就不必进行身份验证(或收集发件人密码),您仍然可以将发件人地址设置为他们的 Hotmail。

$mail->SMTPSecure = "tls";             

【讨论】:

  • 我也尝试过使用 587 端口,但出现以下错误:2014-03-13 07:39:55 CLIENT -> SERVER: AUTH LOGIN 2014-03-13 07:39:56 SMTP ERROR :AUTH 命令失败:530 5.7.0 必须先发出 STARTTLS 命令 2014-03-13 07:39:56 CLIENT -> SERVER: QUIT SMTP connect() 失败。邮件程序错误:SMTP 连接()失败。
  • 我需要使用 HOTMAIL SMTP 发送电子邮件。
  • 如何启用?请发表您的答案。
  • 在启用 TlS 的情况下使用 587 时会出现什么错误?
  • 我收到此错误 ------>>>>>2014-03-13 08:47:10 CLIENT -> SERVER: AUTH LOGIN 2014-03-13 08:47:11 SMTP 错误:AUTH 命令失败:530 5.7.0 必须首先发出 STARTTLS 命令 2014-03-13 08:47:11 CLIENT -> SERVER: QUIT SMTP connect() failed。邮件程序错误:SMTP 连接()失败。我收到此错误
猜你喜欢
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 2018-09-10
  • 2012-07-28
  • 2016-08-30
  • 2010-12-21
  • 1970-01-01
相关资源
最近更新 更多