如何从运行在Windows 10上的本地计算机上发送带有Symfony 4 Swiftmailer的电子邮件?

时间:2017-12-29 19:00:32

标签: symfony wampserver swiftmailer ovh

我正在尝试在Windows 10上发送带有Symfony 4,Wamp和fake sendmail的电子邮件,但没有成功,我已在OVH上托管。我想指定我在OVH上托管一个站点,在Symfony 2上运行相同的参数,Swiftmailer工作正常。

这是我的Swiftmailer的Symfony .env行:

MAILER_URL=smtp://smtp.dnimz.com:465?encryption=ssl&auth_mode=login&username=simslay@dnimz.com&password=***

以下是我的Swiftmailer Symfony控制器的一部分:

$message = (new \Swift_Message('Hello Email'))
    ->setFrom(array($this->container->getParameter('mailer_user') => 'dnimz'))
    ->setTo($user->getEmail())
    ->setBody(
        $this->renderView(
            'emails/email_registration.html.twig',
            array('username' => $user->getUsername())
        ),
        'text/html'
    );

try {
    $this->get('mailer')->send($message);    
    $this->addFlash('notice', 'mail envoyé !');
} catch (\Exception $e) {
    $this->addFlash(
        'notice',
        '<strong>Le message n\'a pu être envoyé !</strong>'
    );
}

这是来自假sendmail的我的sendmail.ini:

[sendmail]

smtp_server=smtp.dnimz.com
smtp_port=465
smtp_ssl=auto
error_logfile=error.log
auth_username=simslay@dnimz.com
auth_password=***
pop3_server=
pop3_username=
pop3_password=
force_sender=
force_recipient=
hostname=

这是我的php.ini邮件功能部分:

SMTP =smtp.dnimz.com
smtp_port =465
sendmail_from = "simslay@dnimz.com"
sendmail_path = "C:/wamp64/sendmail/sendmail.exe"
mail.add_x_header = On

发送电子邮件时,我收到了此警告和错误:

  

[debug]警告:stream_socket_client():SSL操作失败,代码为1. OpenSSL错误消息:   错误:14090086:SSL例程:ssl3_get_server_certificate:证书验证失败

     

2017-12-29T18:44:09 + 00:00 [debug]警告:stream_socket_client():无法启用加密

     

2017-12-29T18:44:09 + 00:00 [debug]警告:stream_socket_client():无法连接到ssl://smtp.dnimz.com:465(未知错误)

     

2017-12-29T18:44:09 + 00:00 [错误]刷新电子邮件队列时发生异常:无法与主机smtp.dnimz.com建立连接[#0]

我不知道为什么会出现这些错误?

1 个答案:

答案 0 :(得分:0)

看起来您要么没有安装OpenSSL,要么出现证书错误。我记得一个类似的问题,就像在Windows上经常出现的作曲家警告一样。解决方案是安装缺少的证书(只需将其放在WAMP安装的certs文件夹中)。

供参考: