【发布时间】:2014-10-29 15:52:51
【问题描述】:
我正在尝试使用本地主机上的 Fat Free Framework 发送电子邮件,使用 Gmail 的 SMTP 服务器,但它不发送邮件。我也在尝试使用 F3 SMTP 日志记录工具,但它什么也没返回。
echo 的输出是:“email result: not sent, mylog: , header: does not exist”。
我正在使用最新版本的 F3,在 localhost 上使用 Apache 2.2 和 PHP 5.4。
$smtp = new SMTP ( 'smtp.gmail.com', 465, 'SSL', 'joebloggs@gmail.com', 'mypass' );
$smtp->set('From', '"Joe Bloggs" <joebloggs@gmail.com>');
$smtp->set('To', '<recipientname@gmail.com>');
$smtp->set('Subject', 'Sent with the F3 SMTP plug-in');
$smtp->set('Errors-to', '<joebloggs@gmail.com>');
$message = 'it works';
$sent = $smtp->send($message, TRUE);
$mylog = $smtp->log();
$sentText = 'not sent';
$headerText = 'does not exist';
if ($sent)
{
$sentText = 'was sent';
}
if ($smtp->exists('Date'))
{
$headerText = 'exists';
}
echo "email result: " . $sentText . ",mylog: " . $mylog . ", header: " . $headerText;
【问题讨论】:
-
您是否尝试过其他 SMTP 服务器?我很确定它不适用于 F3,因为 Gmail 需要 F3 不支持的 STARTTLS。
-
刚刚测试了自己。它适用于 465 上的 SSL 和端口 587 上的 TLS,但我必须激活 support.google.com/accounts/answer/6010255 中描述的“允许不太安全的应用程序”选项。
-
虽然我真的不知道为什么 Google 会阻止 SSL/TLS,或者 SMTP 类中缺少什么。但是这里支持 STARTTLS
-
也许这个资源有帮助:rocketideas.com/2012/05/…
标签: php email smtp fat-free-framework