【发布时间】:2016-08-30 19:50:56
【问题描述】:
我正在尝试使用 php 发送邮件。但它给了我错误,
" SMTP 错误:无法连接到服务器:连接被拒绝 (111)
SMTP 连接()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
“邮件程序错误:SMTP 连接()失败。https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting” “
所以我搜索了很多以找到问题。我有一个解决方案,我需要更改 $mail->IsMail();来自 $mail->IsSMTP();
我做到了,邮件已发送... 但是当我检查我的邮件时,
我明白了, “此邮件可能不是由 sender@gmail.com 发送的”
作为一名开发人员,我理解电子邮件不应包含此类行或问题。
我想知道,如果Receiver在Email中显示这样的行可以吗?如果不是,我该怎么办?
我的意思是我应该对我的代码进行哪些更改。
这是我的 php 代码:
**
date_default_timezone_set('Etc/UTC');
include 'PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail->IsSMTP();
// $mail->Mailer = "smtp";
$mail->SMTPDebug = 1;
$mail->Debugoutput = 'html';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "sender@gmail.com";
$mail->Password = 'senderPassword';
$mail->setFrom("sender@gmail.com", 'sender name');
$mail->addReplyTo('sender@gmail.com', '');
$mail->addAddress($receiver, '');
$mail->Subject = 'Welcome';
$mail->Body = 'body';
$mail->AltBody = 'This is a plain-text message body';
if (!$mail->send())
{
return "Mailer Error: " . $mail->ErrorInfo;
}
else
{
return array('flag' => "1");
}
**
【问题讨论】:
-
您为 tls 使用 465 端口,但 gmail 的 smtp tls 端口为 587。试试这个并检查您是否收到相同的消息。
-
我已经试过了.. :( 为什么我使用 IsMail(); 而不是 IsSMTP(); 时发送邮件; ??
-
我有点困惑这与 phpMyAdmin 有什么关系?
-
与它无关。但我正在使用 PHPMailer 并使用 phpmyadmin 或 sql db.. 但问题仍未解决。我必须在应该使用 IsSMTP() 的地方使用 IsMail()。
标签: php smtp phpmailer sendmail