我是编程新手,我在iMac上使用MAMP(PHP7.0.0)进行开发。我需要发送电子邮件以确认客户注册。出于测试目的,我只想使用我的标准GMail帐户向我自己发送电子邮件。我已经尝试过PHP的本机mail()函数,但这不起作用,我怀疑这是因为GMail使用了某种特殊的身份验证。
所以我下载了PHPMailer(5.2.13)。我不太确定如何使用Composer进行自动加载,所以我只是将以下文件下载到我的项目顶级文件夹中:
class.phpmailer.php
,
class.pop3.php
,
class.smtp.php
和
class.phpmaileroauthgoogle.php
我将它们包含在我的php测试页面顶部:
require_once "./class.phpmailer.php";
require_once "./class.pop3.php";
require_once "./class.smtp.php";
require_once "./class.phpmaileroauthgoogle.php";
其余的测试代码来自PHPMailer ReadMe示例:
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'myUsername@gmail.com';
$mail->Password = 'myPassword';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('myUsername@gmail.com', 'Mailer');
$mail->addAddress('myUsername@gmail.com', 'Recipient');
$mail->isHTML(true);
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->Subject = 'Test email';
$mail->Body = 'Test message';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
我的代码在到达if(!$mail->send()) {
行时会挂起。
我的日志文件中没有出现任何PHP错误,但PHP代码(通过测试页面的JS脚本中的JQuery调用调用)显然已停止,并且没有返回到JS脚本。
我错过了任何PHPMailer文件吗?我有语法错误吗?我是否需要使用OAuth2代码,如果是,我该如何设置?我应该获得另一个(非GMail)帐户进行测试吗?对初学者有什么想法吗?
答案 0 :(得分:0)
require("./class.phpmailer.php");
$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';
$mail->IsMail();
$mail->setFrom('myUsername@gmail.com', 'Mailer');
$mail->addAddress('myUsername@gmail.com', 'Recipient');
$mail->isHTML(true);
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->Subject = 'Test email';
$mail->Body = 'Test message';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
尝试查看是否有任何错误。
答案 1 :(得分:0)
我在向同一个电子邮件地址发送电子邮件时遇到问题。一些服务器认为无效/不需要的消息并且不会接受它返回错误,该错误通常被php文件中的一个catchall默认错误测试编码结构截获。只是一个想法希望它有所帮助。