编辑:不知何故,代码只能在网络服务器上运行,而不能在本地主机上运行,因此您可以修复"修复"。
所以,我的php代码应该像这样工作:
require 'PHPMailer/PHPMailerAutoload.php';
$nome = $_POST["nome"];
$subject = $_POST["subject"];
$message = $_POST["message"];
$email = $_POST["email"];
$contacto = $_POST["contacto"];
$body = "<p>Mail recebido de: </p>" . $nome . "<p>Email:</p>" . $email . "<p> Contacto:</p>" . $contacto . "<p>Mensagem:</p>" . $message ;
$mail = new PHPMailer();
$mail->CharSet = "text/html; charset=UTF-8;";
$mail->SMTPDebug = 0; // debugging: 1 = errors and messages, 2 = messages only
$mail->CharSet = 'UTF-8';
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = "the email";
$mail->Password = the password;
$mail->SetFrom('the email', 'Organizer');
$mail->Subject = "[ORÇAMENTO] " . $subject;
$mail->Body = $body;
$mail->IsHTML(true);
$mail->AddAddress("the email");
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
$sucesso = 'Mensagem enviada com sucesso!';
}
这个第一个脚本会将电子邮件发送给自己,但即使这样也不起作用($ mail-&gt; Send()= 1,仍然没有收到电子邮件):
require '../PHPMailer/PHPMailerAutoload.php';
$body = "<p>Car(a) " . ${'user' . $i} . ",</p> <p> Foi lhe associado(a) uma nova ocorrência. Consulte-a em http://www.organizer.com.pt . </p>";
$mail = new PHPMailer();
$mail->CharSet = "text/html; charset=UTF-8;";
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->CharSet = 'UTF-8';
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = "the email";
$mail->Password = the password;
$mail->SetFrom('the email', 'Organizer');
$mail->Subject = "Nova Ocorrência";
$mail->Body = $body;
$mail->IsHTML(true);
$mail->AddAddress($email);
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
$sucesso = 'Mensagem enviada com sucesso!';
}
我已经测试了从数据库中获得的所有变量等等,并且它们都是正确的,我只是因为某些原因没有收到电子邮件。有人可以帮忙吗?
P.S。:抱歉,其中一些是葡萄牙语,我认为代码仍然完全可以理解。
答案 0 :(得分:0)
“不起作用”不是一个有用的问题描述。在SO上,细节就是一切。
将代码基于过时的代码并没有帮助。不正确的示例,并且没有阅读文档,我怀疑您使用的是旧版本的PHPMailer,因为如果它是最新版本,它会为您提供相关文档的链接。首先,get the latest version和read the docs。
至于具体问题:SMTPSecure = 'ssl'
Port = 587
将无效。端口587用于SMTP + STARTTLS,而不是隐式SSL,因此请设置SMTPSecure = 'tls'
。
这是错的:
$mail->CharSet = "text/html; charset=UTF-8;";
你的其他脚本做对了:
$mail->CharSet = 'UTF-8';
如果您遇到有调试选项的问题,请启用它!
$mail->SMTPDebug = 2;
如果您遇到初始连接问题,请将其增加到3。
我想知道您在哪里获得该示例代码,以便我可以要求作者删除或更新它;有破碎的,过时的例子,只是浪费每个人的时间浪费。