php - Symfony 和 SwiftMailer 使用 starttls 发送

标签 php symfony swiftmailer starttls

有人可以向我解释 SSL 和 STARTTLS 与 PHP 的工作原理吗?

我有一个带有 Postfix 和 Dovecot 的专用服务器(由 plesk 管理)。我没有 SSL。

为了接收和发送我的电子邮件,我使用带有 STARTTLS 的 SMTP/IMAP。

但是在 PHP 中,使用 Swiftmailer 和 Symfony,我只有两个选择:ssl 或 tls。
在我的情况下,这两个都不起作用,电子邮件不会离开。

在stackoverflow上搜索,我把它放在我的代码中,这个工作:

$transport = \Swift_SmtpTransport::newInstance('smtp.server.fr', 587, 'tls')
->setUsername($username)
->setPassword($password)
->setStreamOptions(array('ssl' => array(
    'verify_peer' => false,
    'verify_peer_name' => false,
    'allow_self_signed' => true
 )));

$mailer = \Swift_Mailer::newInstance($transport);

你觉得我的配置对吗?

最佳答案

端口 587您提供的选项表明选项 tls是正确的。所以为了让它在 Symfony 和 Swiftmailer 中工作,你不需要实例化一个新的 SmtpTransport .

只需将以下内容添加到您的 Swiftmailer 配置 config.yml :

Swiftmailer
    # here are some other swiftmailer options like host, user etc.
    stream-options:
        ssl:
            allow_self_signed : true
            verify_peer: false

继续像往常一样使用 swiftmailer。

关于php - Symfony 和 SwiftMailer 使用 starttls 发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41013875/

相关文章:

symfony - 无法使用 Symfony 4 注销

symfony - 如何在sonata管理列表中添加关系实体列

php - 使用 Symfony Mailer 对象发送的电子邮件会进入垃圾邮件文件夹

php - 使用括号使用 mysql 查询未检索到正确的结果

Oracle PDO OCI 字符集失败

php - 错误 500 : How to get session variable via Laravel custom config file?

symfony - Doctrine.yaml”不包含有效的YAML : A colon cannot be used in an unquoted mapping value

symfony - 在 Symfony/Twig 中抑制错误消息?

php - 在每个环境的 Symfony 中禁用 swiftmailer 假脱机

java - Android TextView 与来自 mysql 的数据?