我看到大多数 PHPMailer 问题都使用 IsSMTP(),但我正在使用我昨天在 SO 上找到的一个非常基本的示例(虽然似乎无法在历史中找到链接),但事实并非如此。
require_once("class.phpmailer.php");
$email = new PHPMailer();
if (isset($_FILES['upload']['size']))
{
echo 'file size: '.(basename($_FILES['upload']['size'])* 1024).'<br />';
if (move_uploaded_file($_FILES['upload']['tmp_name'], $target_path))
{
echo "The file ". basename( $_FILES['upload']['name'])." has been uploaded<br />";
$email->AddAttachment($target_path);
}
else
{
echo "There was an error uploading the file, please try again!<br /> ".basename($_FILES['upload']['error']);
}
}
else
{
echo "No file was found for the upload.<br />";
}
$email->To = "me@this.com";
$email->From = $email_from;
$email->FromName = $first_name;
$email->Subject = "Query from website";
$email->Body = $email_message;
//echo "mail built...<br />";
if (!$email->Send())
{
echo "Mailer error: " . $email->ErrorInfo;
}
我试过发送两次。代码执行良好,最后一条if
语句返回 true。
我必须使用 IsSMTP() 吗?如果是这样,它是否必须像我在这里看到的那样通过 SSL 路由?
提前致谢?
编辑
我添加了 SMTP 所需的详细信息,如下所示:
$email->IsSMTP();
$email->Host = "localhost";
$email->Port = 465;
$email->SMTPAuth = true;
$email->Username = "bacon";
$email->Password = "4ndCh33se";
这似乎没有触发它发送。也仍然没有报告任何错误。
编辑
原来有一个错误,我在一个奇怪的地方有一个重定向,阻止我看到它。错误如下:
您必须提供至少一个不支持的邮件。