2016-03-02 92 views
-1

我正尝试用另一个主机发送一封电子邮件,每当我收到这个error-> Mailer Error: SMTP connect() failed。这里是我的代码无法使用PHP连接到SMTP

$mail = new PHPMailer; 
    $mail->isSMTP(); 
    $mail->SMTPDebug = 0; 
    $mail->Debugoutput = 'html'; 

    $mail->Host = ' host IP '; 
    $mail->Port = 587; 
    $mail->SMTPSecure = 'ssl'; // I had also tried with TLS 

    $mail->SMTPAuth = true; 
    $mail->Username = "[email protected]"; 
    $mail->Password = "password"; 

    $mail->setFrom('[email protected]', 'MY Personal'); 

    $mail->addAddress($To); 

    if($MoreAddresses != "") 
    { 
     foreach($MoreAddresses as $Address) 
     { 
      $mail->addAddress($Address); 
     } 
    } 

    $mail->Subject = $Subject; 
    $mail->msgHTML($Body); 
    $mail->AltBody = 'This email contains HTML contents.'; 
    if($MoreAddresses != "") 
    { 
     foreach($MoreAddresses as $Address) 
     { 
      $mail->addAddress($Address); 
     } 
    } 

    $mail->Subject = $Subject; 
    $mail->msgHTML($Body); 
    $mail->AltBody = 'This email contains HTML contents.'; 

    if (!$mail->send()) 
    { 
     return "Mailer Error: " . $mail->ErrorInfo; 
    } 
    else 
    { 
     return "Message sent!"; 
    } 

我曾尝试过许多问题,但无法帮助我。

+0

必须有更多的错误消息在您的日志中。调查。 – ksimka

+0

您可能会先问自己为什么要执行两次'MoreAddresses'处理。 – RiggsFolly

+1

然后问问自己用if($ MoreAddresses!=“”)' – RiggsFolly

回答

0

当您使用

$mail->Port = 587; 
$mail->SMTPSecure = 'ssl'; 

那么端口是:TLS = 587,SSL = 465。

+0

将其添加到您的答案中,_将编辑link_不作为评论。没有人可以阅读注释 – RiggsFolly

+0

和端口25中的代码.... –

+0

设置outMail服务器的SMTP端口 使用25或587 –

1
$mail->IsSMTP(); 
$mail->Host = "smtp.gmail.com"; 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = "ssl"; 
$mail->Username = "[email protected]"; 
$mail->Password = "**********"; 
$mail->Port = "465"; 

这是一个工作配置。 试图取代你有什么

+0

否将其添加到您的原始答案。每个问题的一个答案是所有需要的 – RiggsFolly

+0

我已检查过安全主机网络,并显示“000.000.000.000:465(urd)已打开。”它是否会在该主机中产生任何问题? –

+0

你尝试简单的PHP邮件功能,并检查它的工作与否。 –

0

添加mail.php使用下面的代码它的正常工作对我来说...

include "../Mail/Mail.php"; 

$from = "test<emai>"; 
$to = $toname."<".$tomail.">"; 
$subject = $subject; 
$body =$body; 
$host ="ssl://smtp.gmail.com"; 
$port = "465"; 
$username = "[email protected]"; 
$password = "123456"; 
$headers['From'] =$from; 
$headers['To'] = $to; 
$headers['Bcc'] = $from; 
$headers['Subject'] = $subject; 
$headers['Reply-To'] = 'no-replay<no-replay>'; 
$smtp = Mail::factory('smtp', 
array ('host' => $host,  'port' => $port, 
'auth' => true,  'username' => $username,  'password' => $password)); 
$mail = $smtp->send($to, $headers, $body); 
if (PEAR::isError($mail)) 
{ 
    $mail->getMessage() ; 
} 
1

此代码的PHP邮件

$to = "".$_REQUEST['txtphp_to'].""; 
$subject = "Nullam id dolor id nibh ultricies vehicula."; 
$txt = "Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. 
Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula."; 
$headers = "From: $s_emailid" . "\r\n";// . 
if(mail($to,$subject,$txt,$headers)) 
{ 
echo "done"; 
} 
else 
{ 
echo "error"; 
} 
+1

同一个问题的三个答案有点过分。任何人都应该有一个答案。 _一旦一个国王总是一个国王,但是一旦骑士足够_ – RiggsFolly

相关问题