<?php   
  
require_once('class.phpmailer.php');   
  
$mail = new PHPMailer();   
 
$body = "邮件主体";   
  
//采用SMTP发送邮件   
$mail->IsSMTP();    
//邮件服务器   
$mail->Host       = "localhost";    
$mail->SMTPDebug  = 4;     
//使用SMPT验证   
$mail->SMTPAuth   = true;     
//SMTP验证的用户名称   
$mail->Username   = "admin";    
//SMTP验证的秘密   
$mail->Password   = "admin";       
//设置编码格式   
$mail->CharSet  = "gbk";   
//设置主题   
$mail->Subject    = "测试";   
  
//$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!";    
//设置发送者   
$mail->SetFrom('[email protected]', 'test');   
//采用html格式发送邮件   
$mail->MsgHTML($body);   
  
//接受者邮件名称   
$mail->AddAddress("[email protected]", "test");   
  
//发送邮件   
if(!$mail->Send()) {   
  echo "Mailer Error: " . $mail->ErrorInfo;   
} else {   
  echo "Message sent!";   
}   
  
?>
我想用自己本地的smtp服务器,给126的邮箱发送邮件,一直报错。
SMTP -> ERROR: Failed to connect to server: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 (10060) 
SMTP Error: Could not connect to SMTP host. Mailer Error: SMTP Error: Could not connect to SMTP host.
这是什么原因呢,有高手可以解答下吗。

解决方案 »

  1.   

    你本地的smtp服务器配置了吗?直接发邮件测试了没有。
      

  2.   

    我用的mail direct pro 设置了localhost.如果我不用phpmailer.直接用php 的mail()来发送的话,我的smtp服务器是没有问题的。
      

  3.   

    问个小问题啊,使用phpmailer必须要求php版本支持socket吗?
      

  4.   

    sokcet是默认安装的除非你自己在linux上编译没有加--enable-socket参数
      

  5.   

    不能连接到SMTP邮件服务器.
    $mail->Host       = "localhost";//这里的问题phpmailer是socket发送的邮件,和mail函数是两个东西哈
      

  6.   

    那我在这里应该填什么呢啊?$mail->Host = "localhost";
      

  7.   

    require("phpmailer/class.phpmailer.php");
    $mail = new PHPMailer();
    // 设置mailer使用SMTP
    $mail->IsSMTP();
    // 设置主和备用smtp邮件服务器
    $mail->Host = "smtp.126.com";
    // 开启SMTP验证(一般邮件服务器都需要这个才能发信)
    $mail->SMTPAuth = true;
    // SMTP服务器的登陆用户名
    //需要注意一下,像网易这样的邮箱,需要写全类似于[email protected]这样的用户名。
    $mail->Username = "[email protected]";
    $mail->Password = "xxxxx";// SMTP服务器的用户密码
     
    //设置发件人邮件地址
    $mail->From = "[email protected]";
    //发件人姓名
    $mail->FromName = "xxxxx";
    我想因该是Host的问题,我用phpmailer用的是如上的配置,可以发送成功。