【问题标题】:Why php is sending email from localhost not from server using PHPMailer?为什么 php 从本地主机发送电子邮件而不是使用 PHPMailer 从服务器发送电子邮件?
【发布时间】:2021-04-19 05:43:09
【问题描述】:

我正在使用带有 SMTP 的 PHPMailer 来发送电子邮件。首先,我只是从我的本地主机测试它,它已成功发送电子邮件。

但是当我将相同的代码上传到我的服务时,它会显示我在没有发送电子邮件的情况下出现以下错误;

错误信息是:

2016-04-22 05:53:10 SMTP 错误:无法连接到服务器:连接被拒绝 (111) 2016-04-22 05:53:10 SMTP connect() 失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting 邮件未发送

我不明白为什么它向我显示此错误消息,因为我使用的是 100% 相同的代码。

这是我使用 PHPMailer 发送电子邮件的脚本:

require 'PHPMailerAutoload.php';
$m =  new PHPMailer();

$m->isSMTP();
$m->SMTPAuth = true;
$m->SMTPDebug = 2;

$m->Host = 'smtp.gmail.com';
$m->Username = 'username';
$m->Password = 'password'; // google app password
$m->SMTPSecure =  'ssl';
$m->Port = 465;

$m->From = 'from@gmail.com';
$m->FromName = 'Shibbir Ahmed';
$m->addReplyTo('reply@gmail.com', 'Reply Address');
$m->addAddress('to@gmail.com', 'Shibbir Ahmed');

$m->Subject = 'Here is an email';
$m->Body = 'This is email';
$m->AltBody = 'Alt body';
if($m->send()) {
    echo 'mail send';
} else {
    echo 'mail is not send';
}

【问题讨论】:

标签: php phpmailer


【解决方案1】:

某些服务器禁用了某些用户无法自行启用的功能。请咨询您的托管服务提供商,看看他们是否启用了 mail() 功能。

在这种情况下,smtp 邮件功能在 localhost 中完美运行,但在服务器中无法正常运行。 所以你改变了服务器设置

【讨论】:

  • 感谢您的回复。我正在使用 Godaddy 服务器。你能告诉我要去哪里修吗?
  • 您可以按照我的观点执行以下步骤。登录您的 GoDaddy 帐户。单击服务器。在您要使用的帐户旁边,单击管理。在“帐户摘要”区域中,SMTP 服务旁边会显示您的邮件服务器名称。
  • 我认为用户不能在服务器端设置 mail() 函数
  • 我在 Godaddy 帐户中找不到 SMTP 服务链接
  • 您可以做一件事,只需对您的用户名、密码、端口等进行评论。 $mail2->Host = localhost; //$mail2->SMTPAuth = false; //$mail2->用户名 = 'xxxx@xxxxxx.com'; //$mail2->密码 = '*******'; //$mail2->SMTPSecure = 'tls'; //$mail2->端口 = 465;我知道这很愚蠢,但只需通过这样做来检查它。
【解决方案2】:

故障排除指南的链接是有原因的 - 如果您按照它,它会告诉您确切的问题:GoDaddy 阻止出站 SMTP,因此您必须使用他们的邮件服务器。这个问题有很多重复,所以发帖前先搜索

【讨论】:

    猜你喜欢
    • 2017-06-18
    • 2015-04-15
    • 2016-07-22
    • 1970-01-01
    • 2013-12-18
    相关资源
    最近更新 更多