这是一个棘手的问题,我一直依赖于技术,比如基于许可的电子邮件(即只发送给你有权发送的人),而不是公然使用垃圾邮件术语。
最近,我以编程方式发送的一些电子邮件开始被自动转移到别人的垃圾邮件文件夹中,我不知道该怎么办。
尽管这些特定的电子邮件并不是人类会标记为垃圾邮件的,具体来说,它们是包含许可密钥的电子邮件,人们已经花了很多钱购买,所以我不认为他们会认为它们是垃圾邮件
我认为这是一个很大的话题,在这个话题上我基本上是一个无知的傻瓜。
这是一个棘手的问题,我一直依赖于技术,比如基于许可的电子邮件(即只发送给你有权发送的人),而不是公然使用垃圾邮件术语。
最近,我以编程方式发送的一些电子邮件开始被自动转移到别人的垃圾邮件文件夹中,我不知道该怎么办。
尽管这些特定的电子邮件并不是人类会标记为垃圾邮件的,具体来说,它们是包含许可密钥的电子邮件,人们已经花了很多钱购买,所以我不认为他们会认为它们是垃圾邮件
我认为这是一个很大的话题,在这个话题上我基本上是一个无知的傻瓜。
当前回答
要允许DMARC检查SPF通过,并在使用sendmail时进行对齐,请确保将信封发件人地址(-f或-r参数)设置为与From:报头地址中的域匹配的内容。
PHP:
使用PHP内置的mail()函数而不设置第5个参数将导致DMARC SPF检查不对齐。默认情况下,sendmail将以web服务器的用户RFC5321发送电子邮件。MailFrom / Return路径头。
例如,假设您在host.com web服务器上托管您的网站domain.com。如果您不设置附加参数参数:
mail($to,$subject,$message,$headers); // Wrong way
电子邮件收件人将收到一封带有以下邮件标题的电子邮件:
Return-Path: <your-website-user@server.host.com>
From: <your-website-user@domain.com>
即使这通过了SPF检查,它也将是不对齐的(因为domain.com和host.com不匹配),这意味着DMARC SPF检查将失败为不对齐。
相反,你必须通过包含PHP mail()函数中的第5个参数将信封发件人地址传递给sendmail,例如:
mail($to,$subject,$message,$headers, '-r bounce_email@domain.com'); // Right way
在这种情况下,电子邮件收件人将收到一封带有以下邮件标题的电子邮件:
Return-Path: <bounce_email@domain.com>
From: <your-website-user@domain.com>
由于这两个报头都包含来自domain.com的地址,因此SPF将通过并对齐,这意味着DMARC也将通过SPF检查。
其他回答
很可能的情况是,注册你的服务的人输入的电子邮件中有打字错误,你没有纠正。例如:chris@gmial.com -或- james@hotnail.com。
这样的域名被配置为垃圾邮件陷阱,它会自动标记您的电子邮件服务器的IP和/或域名,并损害其声誉。
为了避免这种情况,请仔细检查产品订阅时输入的电子邮件地址。此外,在向他们发送产品密钥或接受他们的订阅之前,发送确认电子邮件,以真正确保输入确认电子邮件的人100%验证此电子邮件地址。验证电子邮件应该要求收件人点击链接或回复,以真正确认邮箱的所有者是注册的人。
以下是之前回答中的几个要点:
Most important: Does the sender address ("From") belong to a domain that runs on the server you send the E-Mail from? If not, make it so. Never use sender addresses like xxx@gmail.com. User reply-to if you need replies to arrive at a different address. Is your server on a blacklist (e.g. check IP on spamhaus.org)? This is a possibility when you're on shared hosting when neighbours behave badly. Are mails filtered by a spam filter? Open an account with a freemailer that has a spam folder and find out. Also, try sending mail to an address without any spam filtering at all. Do you possibly need the fifth parameter "-f" of mail() to add a sender address? (See mail() command in the PHP manual) If you have access to log files, check those, of course. Do you check the "from:" address for possible bounce mails ("Returned to sender")? You can also set up a separate "errors-to" address.
发送电子邮件有时就像黑魔法一样。反向DNS非常重要。
我发现仔细跟踪ndr非常有用。我把我所有的ndr都指向一个地址,我有一个windows服务解析它们(谷歌ListNanny)。我把尽可能多的NDR信息存入数据库,然后运行报告,看看我是否突然开始被某个域阻塞。此外,您应该避免向先前标记为NDR的地址发送电子邮件,因为这通常是垃圾邮件的良好指示。
如果你需要一次发送一堆客户服务邮件,最好在每一封之间都有一个延迟,因为如果你一次向一个域名发送太多几乎相同的邮件,你肯定会被列入他们的黑名单。
有些域名有时是不可能交付的。Comcast.net是最糟糕的。
确保你的ip地址没有出现在http://www.mxtoolbox.com/blacklists.aspx这样的网站上。
雅虎使用一种称为发件人ID的方法,可以在SPF设置向导中配置并输入到您的DNS中。另外,对于Exchange, Hotmail, AOL, Yahoo和其他公司来说,重要的一点是为你的域名提供反向DNS。这将解决大部分问题。但是,您永远无法阻止某人故意阻止您的或自定义规则。
你能做的最重要的事情是确保你要发送电子邮件的人在收到你的电子邮件时不太可能点击“垃圾邮件”按钮。所以,请遵循以下经验法则:
Make sure you have permission from the people you are sending email to. Don't ever send email to someone who did not request it from you. Clearly identify who you are right at the top of each message, and why the person is receiving the email. At least once a month, send out a reminder email to people on your list (if you are running a list), forcing them to opt back in to the list in order to keep receiving communications from you. Yes, this will mean your list gets shorter over time, but the up-side is that the people on your list are "bought in" and will be less likely to flag your email. Keep your content highly relevant and useful. Give people an easy way to opt out of further communications. Use an email sending service like SendGrid that works hard to maintain a good IP reputation. Avoid using short links - these are often blacklisted.
遵循这些经验法则将大有裨益。