Swift邮件和Symfony([Connection拒绝#111])

时间:2011-03-02 14:59:13

标签: email symfony1 swiftmailer

当我尝试使用Symfony框架发送电子邮件时,我收到此错误。我有一段时间没有这个问题,并且(含糊地),我必须更改我的php.ini设置并将它们与我的/app/config/factories.yml匹配才能使它工作。

不幸的是,我最近不得不重建我的机器,邮件现在已停止工作了 - 不幸的是,我不记得上次我做了什么让他们工作。

以下是我的app / config / factories.yml文件内容的片段:

all:
  mailer:
    class: sfMailer
    param:
      logging:           %SF_LOGGING_ENABLED%
      charset:           %SF_CHARSET%
      delivery_strategy: realtime
      transport:
        class: Swift_SmtpTransport
        param:
          host:       localhost
          port:       25
          encryption: ~
          username:   ~
          password:   ~ 

注意:由于被粘贴在此控制台中,上面的内容可能是错误的 - 不要被它跟踪。 YML在我的机器上很好。

这是我尝试发送电子邮件时记录的错误消息:

[19-Feb-2011 14:50:13] PHP  20. userActions->executeRegisterComplete() /lib/vendor/symfony/symfony-1.3.8/lib/action/sfActions.class.php:60
[19-Feb-2011 14:50:13] PHP  21. sfMailer->send() /path/to/actions.class.php:355
[19-Feb-2011 14:50:13] PHP  22. Swift_Mailer->send() /lib/vendor/symfony/symfony-1.3.8/lib/mailer/sfMailer.class.php:300
[19-Feb-2011 14:50:13] PHP  23. Swift_Transport_AbstractSmtpTransport->start() /lib/vendor/symfony/symfony-1.3.8/lib/vendor/swiftmailer/classes/Swift/Mailer.php:74
[19-Feb-2011 14:50:13] PHP  24. Swift_Transport_StreamBuffer->initialize() /lib/vendor/symfony/symfony-1.3.8/lib/vendor/swiftmailer/classes/Swift/Transport/AbstractSmtpTransport.php:101
[19-Feb-2011 14:50:13] PHP  25. Swift_Transport_StreamBuffer->_establishSocketConnection() /lib/vendor/symfony/symfony-1.3.8/lib/vendor/swiftmailer/classes/Swift/Transport/StreamBuffer.php:70
[19-Feb-2011 14:50:13] PHP  26. fsockopen() /lib/vendor/symfony/symfony-1.3.8/lib/vendor/swiftmailer/classes/Swift/Transport/StreamBuffer.php:233
[19-Feb-2011 14:50:13] Connection could not be established with host localhost [Connection refused #111]

3 个答案:

答案 0 :(得分:5)

我总是喜欢并且总是工作; 我根本就不使用localhost smtp服务。

all:
  mailer:
    param:
      transport:
        class: Swift_SmtpTransport
        param:
          host:       smtp.gmail.com
          port:       465
          encryption: ssl
          username: "xxx@gmail.com"
          password: xxx-password

答案 1 :(得分:1)

问题可能是您没有禁用在开发环境中发送的邮件。你必须像这样完成 config_dev.yml

imports:
    - { resource: config.yml }

framework:
    router:   { resource: "%kernel.root_dir%/config/routing_dev.yml" }
    profiler: { only_exceptions: false }

web_profiler:
    toolbar: true
    intercept_redirects: true

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        firephp:
            type:  firephp
            level: info

assetic:
    use_controller: true

swiftmailer:
    disable_delivery: true

你必须设置:

  • disable_delivery:true (不发送电子邮件)
  • intercept_redirects:true (如果您想在调试栏中看到该电子邮件)

答案 2 :(得分:0)

我的托管服务提供商遇到了同样的错误。我通过编辑factories.yml缩进来修复它。另请检查您的用户名/密码值。