【问题标题】:Symfony framework: How do I send email from localhost?Symfony 框架:如何从本地主机发送电子邮件?
【发布时间】:2011-07-21 07:59:11
【问题描述】:

使用 symfony 框架如何从 localhost 发送测试邮件?
最简单的方法是什么?
谢谢!

【问题讨论】:

    标签: email symfony1 send


    【解决方案1】:

    我想最简单的方法也是我通常做的,是配置 _dev 环境以使用良好的旧 Gmail(或任何其他提供者)。在您的 apps/frontend/config/factories.yml 中进行设置:

    dev:
      mailer:
        class: sfMailer
        param:
          logging:           %SF_LOGGING_ENABLED%
          charset:           %SF_CHARSET%
          delivery_strategy: realtime
          transport:
            class: Swift_MailTransport
            param:
              host:       smtp.gmail.com
              port:       465
              encryption: ssl
              username:   username@gmail.com
              password:   your-password
    

    发送电子邮件当然会花一点时间,因为 PHP 必须连接到 Google 的服务器并传递消息。

    这样您就可以担心在生产服务器上设置正确的 SMTP,而让您的开发机器用于开发。另一个优势是,如果您在路上开发,并且您当地的咖啡馆/机场/售货亭阻塞了 25 端口(他们通常会这样做),您将不会遇到投递邮件的问题。

    【讨论】:

    • 是的,这可能是最简单的方法。但是如果你在团队中工作,你可能不能在 factory.yml 文件中向其他人显示你的 gmail 密码。因此,我们应该创建一个通用的 gmail 帐户。
    • 我收到此错误:警告:mail() [function.mail]:无法在“”端口 25 连接到邮件服务器,请验证您在 php.ini 中的“SMTP”和“smtp_port”设置。 ini 或在第 50 行的 C:\wamp\www\Digicom2011\lib\vendor\symfony\lib\vendor\swiftmailer\classes\Swift\Transport\SimpleMailInvoker.php 中使用 ini_set()。我该怎么办?
    • 你确定你在开发环境中(使用frontend_dev.php)?它似乎将邮件服务器主机读取为空白,这意味着它可能是 YAML 格式错误或您处于错误的环境中。
    【解决方案2】:

    您可以安装 Postfix 等邮件服务器,并将其配置为使用外部邮件服务器作为 SMTP 中继。否则,大多数电子邮件服务要么拒绝接受您的邮件,要么将其归类为垃圾邮件。

    serverfault 上的这个帖子可能对您有所帮助——它解释了如何配置 postfix 以通过 gmail 中继电子邮件:Configure Postfix to send/relay emails Gmail (smtp.gmail.com) via port 587

    【讨论】:

      猜你喜欢
      • 2016-07-22
      • 2013-04-16
      • 2014-10-25
      • 2013-10-01
      • 2010-12-19
      • 1970-01-01
      相关资源
      最近更新 更多