【问题标题】:Send emails in symfony在 symfony 中发送电子邮件
【发布时间】:2012-01-29 00:58:06
【问题描述】:

我在 symfony 1.4.8(以及作为 ORM 的 Doctrine)中使用 swiftmailer(传输)来发送我的邮件。

我已经按照书中的说明进行了配置。

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

问题是当我使用实时策略时,发送邮件需要太多时间,用户应该等到它完成。然后操作完成,您可以看到结果。这对我不好,因为我想发送验证邮件进行用户注册,如果速度很慢,用户会在注册期间入睡。

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

那么对于这种情况有策略吗?这对于发送电子邮件来说已经足够快了(无需等到发送完毕)

【问题讨论】:

  • 是的,如果您使用假脱机策略,则需要定期运行任务。为什么对你不好?每 5 分钟通过 cron 运行一次,应该足够快。您也可以选择立即发送单封电子邮件。
  • 是的,我也用过(立即发送邮件)。但是这个策略太耗时了。我不知道为什么,但是发送它需要太多时间。运行发送邮件任务也很好,但我认为它不利于性能问题。是吗?
  • 每隔几分钟运行一个任务,在大多数情况下实际上什么都不做,这不应该是性能问题。

标签: php email symfony1 swiftmailer transport


【解决方案1】:

我使用实时策略发送电子邮件,有时会循环发送数百封电子邮件。我发现电子邮件,尤其是在序列的早期发送时,速度相对较快。

我使用了以下技术:

  • Gmail 和 SSL 加密
  • 通过 API 发送网格
  • 我自己的 API 使用了一个被任务扫描的电子邮件事务表来发送电子邮件。

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

【讨论】:

    猜你喜欢
    • 2015-04-16
    • 2015-07-19
    • 2023-03-09
    • 2014-11-19
    • 2019-10-05
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    相关资源
    最近更新 更多