【问题标题】:Sending emails via smtp with phpmailer使用 phpmailer 通过 smtp 发送电子邮件
【发布时间】:2017-06-08 21:34:35
【问题描述】:

我遇到了 PHPMailer 和 SMTP 发送邮件的问题。我写了这段代码,但它不适用于我的脚本。我有两个版本的邮件程序,第一个没有 SMTP,但我需要使用 SMTP。

  1. 没有 SMTP 版本。

  2. 第二个版本添加了PHPMailer,但是当我按下提交时,它没有发送任何东西,只是在加载时停止:


require_once(dirname(__FILE__).'/../../config.php');
require(dirname("/mail/PHPMailerAutoload.php"); // path to the 
PHPMailerAutoload.php file.

$mail->$fromEmail = NO_REPLY;
$mail->$headers = "MIME-Version: 1.0" . "\r\n";
$mail->$headers .= "Content-Type: text/plain; charset=utf-8" . "\r\n";
$mail->$headers .= "From: ".$fromEmail. "\r\n";
$mail->$subject = $LANG["WBS_REGM_SUBJECT"];
$mail->mail($user_email,$subject,$details,$headers);

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Mailer = "smtp";
$mail->Host = "localhost";
$mail->Port = "465"; // 8025, 587 and 25 can also be used. Use Port 465 for SSL.
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Username = "XXXXXXX";
$mail->Password = "XXXXXXXXX";

echo '<div id="mode">1</div>';
    } else {
        echo '<div id="mode">2</div>';
    }
} else {
    echo '<div id="mode">3</div>';
}
}

我会为使用 smtp 做什么?如何修复此错误?

【问题讨论】:

  • 在此处发布您的实际代码,而不是您的代码图片。
  • 你遇到了什么错误?
  • 你不能在require函数中使用完整的URL,而是使用本地路径。
  • 这很可能是您的要求。您不能要求该网址。
  • 请注意:您的代码中有错误。您的 else 语句缺少 if 语句。

标签: php smtp mailer


【解决方案1】:

您的代码是在网络服务器上还是在本地?这可能是个问题!

$mail->Host = 'localhost'

例如,如果您没有后缀电子邮件服务,本地代码可能会出现问题。

mail()

【讨论】:

  • 我的脚本在真实服务器而不是本地服务器上。
【解决方案2】:

您不能使用 Web URL 包含该文件。您可能希望使用本地路径,然后要求它:

require(dirname(__FILE__) . "/path/to/phpmailer/PHPMailerAutoload.php");

获取当前包含文件的目录:

<?php
dirname(__FILE__);
?>

例如,如果从文件系统的任何位置包含的名为“database.init.php”的脚本想要包含位于同一目录中的脚本“database.class.php”,您可以使用:

<?php
include_once(dirname(__FILE__) . '/database.class.php');
?>

参考:http://php.net/manual/en/function.dirname.php

下一步是检查您的服务器是否配置为处理 SMTP 请求。确保您使用的 SMTP 端口已打开并且可以被您的程序使用。

【讨论】:

  • 嗨!谢谢,但我做到了,但没有用。我已将此代码与 usr 和没有 url 一起放置。
  • 您遇到什么错误?在代码中添加error_reporting(E_ALL); 以查看错误。
  • 我需要通过 smtp 发送消息,但我做不到。
  • @oktamyoqubov 确保您使用的 SMTP 端口已打开并且可以被您的程序使用。
  • 好的!谢谢!我已经搞定了。这个脚本调用了 db,我已经修复了它。
猜你喜欢
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-05
  • 1970-01-01
  • 2017-10-05
  • 1970-01-01
相关资源
最近更新 更多