首页 文章

无法使用gmail smtp和swift邮件程序发送邮件

提问于
浏览
2

我无法通过swift邮件程序上的gmail smtp发送电子邮件,这里是代码:

<?php

require_once 'inc/swift_mailer/lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
  ->setUsername('mysen2@gmail.com')
  ->setPassword('bestpasswordever')
  ;
$transport->setLocalDomain('[127.0.0.1]');
$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance($transport)
  ->setSubject('Test Mail')
  ->setFrom(array('mysen2@gmail.com' => 'John Doe'))
  ->setTo(array('testin3@gmail.com'))
  ->setBody('This is the test message.')
  ->addPart('<q>Here is the message itself</q>', 'text/html');

    if (!$mailer->send($message, $failures))
    {
        die("Errors occurred:
" . $failures); } ?>

并且错误消息:

致命错误:未捕获异常'Swift_TransportException',消息'无法与主机smtp一起 Build 连接[无法找到套接字传输“ssl” - 您是否忘记在配置PHP时启用它? #-27264]'在/swift_mailer/lib/classes/Swift/Transport/StreamBuffer.php:266堆栈跟踪:#0 /swift_mailer/lib/classes/Swift/Transport/StreamBuffer.php(66):Swift_Transport_StreamBuffer - > _ establishSocketConnection( )#1 /swift_mailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(117):Swift_Transport_StreamBuffer-> initialize(Array)#2 /swift_mailer/lib/classes/Swift/Mailer.php(79):Swift_Transport_AbstractSmtpTransport-> start ()#3 /usr/local/www/data/mail.php(19):Swift_Mailer-> send(对象(Swift_Message),数组)在#swift_mailer / lib / classes / Swift / Transport /中抛出#4 第266行的StreamBuffer.php

我猜我的服务器没有包含open ssl库的问题:

[无法找到套接字传输“ssl” - 您是否忘记在配置PHP时启用它?

那怎么办呢?

使用gmails SMTP是否适合每天发送50-100封邮件?或者我应该使用别的东西(你可以自由地建议并给我一些提示)?

1 回答

  • 4

    您可以使用 --with-ssl[=DIR] 选项重新编译PHP来修复 [Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? .

    为了能够做到这一点,您必须将OpenSSL库安装到您的服务器上 . 根据您的操作系统,您可以在Debian / Ubuntu上执行 apt-get install openssl-dev ,或在RedHat / CentOS / Fedora上执行 yum install openssl-devel .

    或者,您可以自己下载并编译最新版本的OpenSSL并将其与PHP一起使用 .

    如果您不运行服务器,则需要让主机为您启用PHP中的SSL .

    Also: Gmail可以正常工作,每天发送50-100封电子邮件 . 但这取决于 . 看他们的Program Policies for Gmail没有详细介绍 . 听起来如果您与每天发送电子邮件的50-100人之间存在预先存在的关系,那么您可能不会违反任何条款,但您可能希望通过直接联系他们或更多地搜索他们的条款来确认 .

相关问题