2017-04-10 145 views
-1

我对PHPMailer和SMTP发送邮件有问题。我编写了这段代码,但它不适用于我的脚本。我有两个版本的邮件程序,第一个没有SMTP,但我需要使用SMTP。用phpmailer通过smtp发送邮件

  1. 没有SMTP版本。

  2. 第二版增加了PHPMailer的,但是当我按下提交,它不发送任何东西,只能停在装载:


require_once(dirname(__FILE__).'/../../config.php'); 
require(dirname("/mail/PHPMailerAutoload.php"); // path to the 
PHPMailerAutoload.php file. 

$mail->$fromEmail = NO_REPLY; 
$mail->$headers = "MIME-Version: 1.0" . "\r\n"; 
$mail->$headers .= "Content-Type: text/plain; charset=utf-8" . "\r\n"; 
$mail->$headers .= "From: ".$fromEmail. "\r\n"; 
$mail->$subject = $LANG["WBS_REGM_SUBJECT"]; 
$mail->mail($user_email,$subject,$details,$headers); 

$mail = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->Mailer = "smtp"; 
$mail->Host = "localhost"; 
$mail->Port = "465"; // 8025, 587 and 25 can also be used. Use Port 465 for SSL. 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = 'tls'; 
$mail->Username = "XXXXXXX"; 
$mail->Password = "XXXXXXXXX"; 

echo '<div id="mode">1</div>'; 
    } else { 
     echo '<div id="mode">2</div>'; 
    } 
} else { 
    echo '<div id="mode">3</div>'; 
} 
} 

我将使用SMTP做些什么?我该如何解决这个错误?

+0

在这里发布您的实际代码,但不是图片的代码。 –

+0

你得到什么错误? –

+0

您不能在require函数中使用完整的URL,而是使用本地路径。 – Jer

回答

0

您无法使用网址包含该文件。您可能需要使用本地路径,而不是再需要它:

require(dirname(__FILE__) . "/path/to/phpmailer/PHPMailerAutoload.php"); 

要得到的当前目录包含的文件:

<?php 
dirname(__FILE__); 
?> 

例如,如果所谓的“database.init.php脚本database.class.php‘其中规定在同一目录“,这是从任何地方在文件系统中要包括脚本包含’,你可以使用:

<?php 
include_once(dirname(__FILE__) . '/database.class.php'); 
?> 

参考:http://php.net/manual/en/function.dirname.php

下一步是检查您的服务器是否配置为处理SMTP请求。确保您使用的SMTP端口已打开并可供您的程序使用。

+0

嗨!谢谢,但我做到了,但没有奏效。我已经把这个代码与usr和没有url。 –

+0

你得到的错误是什么?在代码中添加'error_reporting(E_ALL);'来查看错误。 – Jer

+0

我需要通过smtp发送消息,但我无法做到。 –

0

是您的代码在Web服务器上或本地?这可能是一个问题!

$mail->Host = 'localhost' 

例如,如果您没有后缀电子邮件服务,则可能是本地代码的问题。

mail() 
+0

我的真实服务器上的脚本不是本地服务器。 –

+0

并返回哪个错误? –