【问题标题】:Safely send many emails in PHP在 PHP 中安全地发送许多电子邮件
【发布时间】:2012-02-10 00:56:28
【问题描述】:

我正在用 PHP 构建一个网站,允许用户发送邀请电子邮件。他们可以一次发送多个。

有人告诉我,使用 PHP 的 mail() 函数是一个糟糕的选择,因为它很容易被标记为垃圾邮件。有什么方法可以设置这个脚本,这样邮件就不会被标记为垃圾邮件?

我已经阅读了很多内容,从我今天阅读的内容来看,似乎有几个因素会影响邮件是否被标记为垃圾邮件,包括:电子邮件中使用的字词;与电子邮件实际发源地相比,电子邮件所说的发送域;标题格式;以及发送电子邮件的频率。

我们使用的电子邮件地址用于 Gmail 应用程序。因此,如果我发送的电子邮件不是“看起来”垃圾邮件,我会从 Gmail 发送它们,并且我可以限制发送电子邮件的频率(可能每 10 分钟 10 封),那么我应该可以毫无问题地做到这一点?

编辑

这不是新闻通讯。我是否还要担心被邀请电子邮件标记为垃圾邮件?

【问题讨论】:

  • 您必须担心被标记为垃圾邮件的任何批量电子邮件。你的意图并不重要。
  • 是的,但我的意思是不太可能有人会邀请 500 个朋友

标签: php email spam


【解决方案1】:

虽然你的结论是正确的,但你的推理并不完全正确。 php 的邮件功能不会导致您的邮件被标记为垃圾邮件,因为它发送的邮件与其他邮件相同。

php的邮件功能的问题是它的级别很低,所以如果你不知道如何正确使用它,并且留下电子邮件注入漏洞,人们可能会利用你的网站通过它发送垃圾邮件,并且在反过来,这可能会使您的服务器被 isps 列为垃圾邮件的黑名单。只要您从额外的标头字段(来自:等)中去除 \n 和 \r,您就应该是安全的。

另一个问题是您必须在电子邮件中添加自己的有效标题。

还有一个问题是,每次调用 mail() 时,它都会连接和断开与您的 smtp 服务器的连接,尽管我认为有一种方法可以使用一次调用 mail 来发送多封电子邮件。不过这会很复杂,因为它可能涉及查看 rfc282 并弄清楚如何去做。

【讨论】:

    【解决方案2】:

    首先,您需要为您的域提供有效的 mx.record... 如果您使用邮件功能,您应该发送如下有效的标头:

    function send_mail($from = FALSE,$to = FALSE, $msg = FALSE, $subject = FALSE, $html= TRUE){
        if($from && $to && $msg && $subject){
            if ($html){
                $header  = 'MIME-Version: 1.0' . "\r\n";
                $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; 
            }
                $header .= 'From: '.$from. "\r\n";          
                $header .= 'Reply-To: '.$from. "\r\n";
                $header .= 'X-Mailer: PHP/' . phpversion();
                return mail ($to,$subject,$msg,$header);
        }
        return "fail";
    }
    

    【讨论】:

    • MX 记录在 Gmail 中。所以剩下的唯一事情就是确保我不会经常发送电子邮件?
    • 如果您使用 gmail 帐户,您需要像 gabriel 提到的 smpt。不仅是频率,还有内容。我不会让用户从我的服务器发送他们想要的任何邮件。
    【解决方案3】:

    您需要使用 SMTP 服务器,然后使用 php 的任何 php 库进行连接。这里有一些有用的库和一些示例

    【讨论】:

    • 我倾向于 phpmailer,因为我听说它很好而且可靠。我的 MX 记录在 Gmail 中,并且我已经检查(使用 phpmailer.worxware.com 上的工具)它们没有被列入黑名单并且 DNS 很好。那么,我唯一需要担心的是发送电子邮件的频率?
    • 其实你需要担心费率...Gmail有一个每日上限:support.google.com/a/bin/…
    • (这里是上面的英文链接)support.google.com/a/bin/…
    猜你喜欢
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2014-07-20
    相关资源
    最近更新 更多