我遇到了问题,我的代码位于下方,我收到此错误消息: 邮件无法发送.Mailer错误:SMTP错误:以下收件人失败:!截断!
我查看了主机,端口,用户名,密码,收件人等都是正确的,有什么问题?谢谢!
请你解释一下我是PHP编码的新手
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['amne'];
$message = $_POST['message'];
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = '!Censored!'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '!Censored!'; // SMTP username
$mail->Password = '!Censored!'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->From = $email;
$mail->FromName = $name;
$mail->addAddress('!Censored!'); // Add a recipient
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = $subject;
$mail->Body = $message;
$mail->AltBody = $message;
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
编辑:我发现了问题,问题不在于PHP代码本身。这是联系表格。当我将变量作为名称和电子邮件时,问题就出现了。如果未验证电子邮件,则无法使用。
答案 0 :(得分:1)
此错误可能是由一些不同的事情引起的。您可以通过在PHPMailer脚本中添加以下行来更好地了解原因:
$mail->SMTPDebug = 2; //<-- For debugging
执行此操作后,您可以检查可能导致错误的以下内容:
1。)一个损坏的class.phpmailer.php文件。
2。)错误可能是由ISP提供的保护引起的。与他们核实。
3。)收件人/发件人的电子邮件地址可能存在问题。
4.。)为PHPMailer类设置SMTPAuth为true。
5.。)在PHPMailer脚本中注释掉以下行:$ mail-&gt; isSMTP();
大多数情况下,您的phpmailer
类文件可能已损坏。