我遇到了PHPMailer和SMTP发送邮件的问题。我编写了这段代码,但它并不适用于我的脚本。我有两个版本的邮件程序,第一个没有SMTP,但我需要使用SMTP。
没有SMTP版本。
第二个版本添加了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)
您无法使用网址包含该文件。您可能希望使用本地路径,然后需要它:
require(dirname(__FILE__) . "/path/to/phpmailer/PHPMailerAutoload.php");
获取当前包含文件的目录:
<?php
dirname(__FILE__);
?>
例如,如果脚本名为&#39; database.init.php&#39;它包含在文件系统的任何地方,希望包含脚本&#39; database.class.php&#39;,它位于同一目录中,您可以使用:
<?php
include_once(dirname(__FILE__) . '/database.class.php');
?>
参考:http://php.net/manual/en/function.dirname.php。
下一步是检查您的服务器是否配置为处理SMTP请求。确保您使用的SMTP端口已打开,并且可供您的程序使用。
答案 1 :(得分:0)
您的代码是在Web服务器上还是本地的?这可能是个问题!
$mail->Host = 'localhost'
如果您没有后缀电子邮件服务,则可能是本地代码的问题。
mail()