0

当我尝试使用 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]
4

3 回答 3

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
于 2012-11-27T02:04:08.193 回答
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(如果你想在调试栏中看到电子邮件)
于 2012-04-18T20:10:09.383 回答
0

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

于 2013-07-14T19:26:03.687 回答