【问题标题】:PEAR Mail, SMTP Sessions for Newsletters?PEAR 邮件、时事通讯的 SMTP 会话?
【发布时间】:2012-04-11 17:21:33
【问题描述】:

当使用 PEAR 的 Mail 包通过 SMTP 服务器发送时事通讯时,有没有办法指定某种“连接重用”,这样 PHP 脚本就不必为每个单独的邮件创建一个到 SMTP 服务器的新套接字?

这当然是没有将每个收件人的地址只放在一封电子邮件中,这样各个收件人就不会看到彼此的地址。

或者 SMTP 不允许这样做?

【问题讨论】:

    标签: php email smtp pear


    【解决方案1】:

    嗯,我认为最好的解决方案是将每个命运都放入黑碳中。这保证了接收邮件的人不会看到其他邮件地址,并且是比为每个目标发送邮件更好的解决方案

    这在php pear Mail包中是可行的。

    【讨论】:

    • 实际上做我建议你需要库 phpmailer:code.google.com/a/apache-extras.org/p/phpmailer as php pear mail 似乎不支持密件抄送和抄送
    • 是的,但是这对收件人来说可能看起来很尴尬,而且一些邮件提供商(如 gmail)似乎对非个人地址的邮件具有较低的垃圾邮件阈值。
    • 确实如此。我个人在我的应用程序中使用此解决方案。垃圾邮件和gmail从来没有问题。实际上许多其他电子商务网站和邮件列表都使用这种策略
    【解决方案2】:

    PEAR Mail 似乎是一个绝望的案例,但 Zend 的框架已经解决了这个问题,并在脚本运行(并且对象存在)时保持 SMTP 套接字打开:http://framework.zend.com/manual/en/zend.mail.multiple-emails.html

    【讨论】:

      【解决方案3】:

      你应该做的是设置'persist'参数。然后只使用一次工厂方法 - 然后确保它是使用的同一个套接字。

      类似这样的:

      static $mail;
      if (!is_object($mail)) {
          $mail = Mail::factory($options['mail_method'], $params);
      }
      $res = $mail->send($to, $mime_headers, $body);
      

      如果你每次都调用mail::factory,那么就会创建一个新的socket。在上述方式中,您只创建一个套接字。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-11
        • 2013-11-10
        • 2014-06-26
        • 1970-01-01
        • 2011-03-05
        相关资源
        最近更新 更多