2011-12-28 98 views
0

我在symfony 1.4.8(和Doctrine as ORM)中使用swiftmailer(transport)来发送我的邮件。在symfony中发送电子邮件

我已经按照本书的说法配置了所有内容。

dev: 
    mailer: 
    class: sfMailer 
    param: 
     delivery_strategy: spool 
     spool_class:  Swift_DoctrineSpool 
     spool_arguments: [ MailMessage, message, getSpooledMessages ] 
     transport: 
     class: Swift_SmtpTransport 
     param: 
      host: something 
      port: 26 
      encryption: ~ 
      username: something 
      password: something 

问题是,当我使用的即时战略,它需要太多的时间来发送邮件和用户应该等待,直到它完成。然后行动完成,你可以看到结果。这对我并不好,因为我想发送用户注册的验证邮件,如果速度很慢,用户在注册过程中会陷入睡眠状态。

而且我也不能使用假脱机策略。因为我必须手动将它们发送给任务(对吗?),我也做不到。因为它应该在注册后自动发送。

那么这种情况是否有策略?这对发送邮件来说足够快(不需要等到发送邮件)

+0

是的,如果您使用假脱机策略,您需要定期运行任务。你为什么不好?每5分钟通过cron运行一次,应该足够快。您也可以选择立即发送单个电子邮件。 – Maerlyn 2011-12-28 10:02:50

+0

是的,我也使用过(立即发送邮件)。但是这个策略太耗时。我不知道为什么,但发送它太多了。运行发送邮件任务也不错,但我认为这对性能问题不好。是吗? – Firouziam 2011-12-28 10:18:10

+0

每几分钟运行一次任务,在大多数情况下,这不会成为性能问题。 – Maerlyn 2011-12-28 11:12:08

回答

0

我使用实时策略发送电子邮件,有时数百个循环。我发现电子邮件,特别是在序列早期发送时,相对较快。

我已经使用了以下技术:通过API

  • Gmail和SSL加密
  • SendGrid
  • 我自己的API,它使用了得到由发送邮件任务席卷电子邮件事务表。

根据我的经验,一封确认电子邮件应该非常方便。如果不是,我会寻求其他(命令行)方法来调试该事务,以查看瓶颈在哪里。我怀疑它的PHP,Symfony或Swift。