代码之家  ›  专栏  ›  技术社区  ›  Zeth

PHP邮件的替代方案(原因:垃圾邮件)?

  •  3
  • Zeth  · 技术社区  · 12 年前

    我遇到了一个巨大的问题,从我的域发送的邮件被Gmail的垃圾邮件过滤器捕获。我发送的邮件是给那些没有从发送电子邮件地址收到任何东西的客户的发票,所以我想这就是邮件成为垃圾邮件的原因之一。我还认为另一个原因是,在我意识到之前,系统发送了大约150封电子邮件,它们都以垃圾邮件告终。根据MailChimp的一篇文章,第一张表的最后一行,垃圾邮件过滤器会注意到发送的邮件是否在其他帐户上被标记为垃圾邮件(文章: http://kb.mailchimp.com/article/avoiding-the-spam-filters ). 这个系统是用PHP制作的,所以我正在努力找到一种方法,我可以从我制作的系统中向以前没有收到任何邮件的收件人发送电子邮件-这就是我所需要做的。听起来很简单。。。

    现在,我已经尝试了很多东西。这里有一个快速列表,让你知道什么是可以做的,什么是不能做的,以及我尝试过的:

    • 该域由One.com托管,他们不支持 客户可以设置自己的SPF记录或DKIM记录(而不是我 知道它们是什么——因为我很快意识到这不是 可供选择)。
    • PHPmailer不是一个选项,因为它是由One.com托管的,所以我不能将它安装在PHP init文件中。因此,PEAR邮件功能也是如此(不能使用)。
    • 我试过使用PHP的SwiftMailer。然而,我很难改变标题中的信息,所以我停止了尝试。
    • 我研究了如何使用MailChimp的PHP API向单个收件人发送单个电子邮件(这是它需要做的)。但他们的API不支持这一点。
    • 我考虑过SendGrid,但我可以看到它每月要花费10美元,这有点贵,只是为了能够向客户发送发票的URL。。。或者我就是这么想的。
    • 我试着使用PHP的邮件功能,在这里我自己编写标题。标题可以在这里看到:
        Delivered-To: NEWLY-CREATED-GMAIL-ACCOUNT@gmail.com
        Received: by 10.76.75.104 with SMTP id b8csp48728oaw;
                Sat, 16 Mar 2013 17:32:56 -0700 (PDT)
        X-Received: by 10.152.116.45 with SMTP id jt13mr7897860lab.0.1363480376067;
                Sat, 16 Mar 2013 17:32:56 -0700 (PDT)
        Return-Path: 
        Received: from mail-out2.b-one.net (mail-out2.one.com. [91.198.169.19])
                by mx.google.com with ESMTP id p10si4637427lbb.120.2013.03.16.17.32.55;
                Sat, 16 Mar 2013 17:32:55 -0700 (PDT)
        Received-SPF: neutral (google.com: 91.198.169.19 is neither permitted nor denied by best guess record for domain of XXX111@lyobeachcamp.dk) client-ip=91.198.169.19;
        Authentication-Results: mx.google.com;
               spf=neutral (google.com: 91.198.169.19 is neither permitted nor denied by best guess record for domain of XXX111@lyobeachcamp.dk) smtp.mail=XXX111@lyobeachcamp.dk
        Date: Sat, 16 Mar 2013 17:32:55 -0700 (PDT)
        Message-Id: 
        Received: from localhost.localdomain (srv18.one.com [193.202.110.18])
            by mail-out2.b-one.net (Postfix) with ESMTP id F3D0B10365
            for ; Sun, 17 Mar 2013 01:32:53 +0100 (CET)
        Received: from 85.218.159.219 by www.lyobeachcamp.dk via URL_TO_THE_SCRIPT.php with HTTP; Sun, 17 Mar 2013 00:32:53 +0000
        To: RECIEVERS_NAME 
        Subject: Faktura på depositumet
        X-PHP-Originating-Script: 87486:NAME-OF-THE-SCRIPT-THE-E-MAIL-WAS-SENT-FROM.php
        Reply-To: Lyø Beach Camp 
        From: Besked fra Lyø Beach Camp 
        MIME-Version: 1.0
        Sender: Besked fra Lyø Beach Camp 
        Content-type: text/plain; charset="utf-8"; 
        X-Mailer: PHP5.3.21
    
        Hej E-MAIL-OWNER-NAME. 
    
        Her er et link til din faktura 
    
        http://www.lyobeachcamp.dk/ENCRYPTED_URL_TO_INVOICE.pdf . 
    
        Du skal betale denne faktura indenfor den næste 5 dage. Senere hen vil du modtage en
        faktura på restbeløbet. Du vil så modtage dit rejsebevis kort før afrejse-datoen 
        (omkring to ugers tid før). Vi kan desværre ikke melde de eksate flytider ud, før da. 
        Du kan dog følge med i de midlertidige flytider som vi har på 
        http://www.lyobeachcamp.dk/flytider . 
    
        Med venlig hilsen 
    
        Lyø Beach Camp 
    
        Web: http://www.lyobeachcamp.dk 
    
        Mail: Hvis der er noget, så er du altid velkommen til at skrive os en mail på 
        XXX222@lyobeachcamp.dk
    

    所以我的问题是:

    1. 我可以做一些非常酷的事情吗 让它通过垃圾邮件过滤器?
    2. 有可能以某种方式从G-mail帐户发送电子邮件吗 或者其他什么,从PHP系统?我的意思是,如果我 lyobeachcamp@gmail.com或者类似的东西,并且能够发送 电子邮件自动发送(通过我的PHP构建系统),然后我 你猜绕过垃圾邮件过滤器会更容易吗?还是我 做梦?
    3. 我还有什么其他选择?我想要的只是一种我能得到的方式 我的一个客户的URL?我甚至在考虑发送 装在瓶子里的信息,然后扔到海里,因为还有更大的 他们得到的机会,而不是检查他们的 垃圾邮件过滤器。

    任何指向正确方向的观点、建议或想法都将不胜感激。我在这里非常绝望!

    谢谢你抽出时间。

    5 回复  |  直到 12 年前
        1
  •  4
  •   kuncajs    12 年前

    请尝试Sendgrid系统。它真的很容易使用,如果足够的话,你每天最多可以免费使用200封发送的电子邮件。

    我们现在正在PHP应用程序中使用它,它运行得很好。

    http://sendgrid.com

        2
  •  4
  •   landons    12 年前

    如果你所要做的就是放在一个超级漂亮的标题中绕过垃圾邮件过滤器,你不认为垃圾邮件也会这么做吗?)

    这不是交货问题。要么A)你的IP被列入黑名单,要么B)你的内容是垃圾邮件。你需要一个SPF记录才能真正解决这个问题。

    我绝对愿意 建议使用FROM或REPLY-TO头从gmail.com等域名发送,或者使用明显不属于您的域名发送。

        3
  •  2
  •   Community CDub    7 年前

    您可以将php邮件配置为使用smtp,而不是通过服务器sendmail程序。

    这是我在谷歌上找到的SMTP的内联脚本

    http://www.9lessons.info/2009/10/send-mail-using-smtp-and-php.html

    -或-

    一个梨包装

    http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

    只需输入你的gmail smtp设置即可。

    您也可以在服务器级别执行此操作

    php.ini

    [mail function]
    ; For Win32 only.
    SMTP = mail.yourserver.com
    smtp_port = 25
    auth_username = smtp-username
    auth_password = smtp-password
    sendmail_from = you@yourserver.com
    

    通过 php.ini & SMTP= - how do you pass username & password

        4
  •  1
  •   Spudley Pat    12 年前

    PHP有几个不错的mailer库。

    我喜欢的是 phpMailer .

        5
  •  0
  •   Dave Hogan    12 年前

    简而言之,没有一个简单的答案或特殊的标题可以包含在内。如果存在这种情况,那将毫无意义,因为我相信大多数垃圾邮件发送者都会利用它。我在谷歌邮件中遇到的一件事是,他们似乎对发件人地址和域名非常严格。

    检查发件人域是否未使用任何黑名单注册,并且您是否有有效的DNS记录,最好是PTR记录

    按照@j_mcnally的建议将PHP配置为使用SMTP将是我的最佳解决方案