Eug*_*ene 10 php mysql email e-commerce
让我解释一下我在标题中的含义.让我们说,例如,我正在为一个网上商店/目录创建一个小型电子商务系统.客户有可能选择,他们是否希望收到新闻通讯.如果他们这样做,那么逻辑上应该立即发送新闻通讯,因为新闻通讯已经形成并准备就绪.
当然,它可以通过从数据库中获取所有指定的用户电子邮件并使用for循环通过mail函数循环发送邮件来完成,但问题是我被告知,这是不好的做法.简单而不便宜的方式是购买发送新闻通讯的互联网服务,但是对于php程序员需要什么呢?
所以我问你们谦虚的同志,你们的观点可能是什么解决方案?
NB!你可能不会相信我,但它不是垃圾邮件.
UPD:我可能已经解释错了,但我想听到的解决方案不仅是关于正确的发送邮件的方式,还有正确的交付方式.因为不是每个邮件发送总是交付.
当然有一些原因是不可预测的.例如,某个地方出现了故障并且邮件丢失(如果可能的话),但也有其他原因可能会受到服务器或其他地方的影响.也许需要与托管人讨论这个问题?
Wri*_*ken 26
没有理由不能用PHP编写它,尽管我不会将它作为webrequest/HTTP进程的一部分.我已成功实施每个邮件给予或接受500,000个订阅者(取决于可用的本地数据,因为这是一个特定于位置的项目).这是一个内部项目,很遗憾没有代码/包,但我遇到了一些指示:
设置交货
filter_var($email, FILTER_VALIDATE_EMAIL); 在订阅者(并显然存储结果)摆脱了前几十万个无效的电子邮件.foo@[255.255.255.255],所以保持那些有效))更多地摆脱了很多.此处的电子邮件地址不是永久禁用的,但有一个状态标志,表示由于域名/ IP而被禁用.Return-Path是为...设置mailer+user=server.tld@example.com.在收据上轻松解析,并且在多少跳出(邮箱不存在,邮箱可能已满(是的,仍然!)等)之后,您声明电子邮件地址无法使用取决于您.获得速度
避免拒绝
abuse@电子邮件地址是一个很好的起点,但看看你是否可以从某个地方钻取更多的电子邮件地址.准确,诚实和完整:大约有多少订阅者与ISP建立了电子邮件地址,您多久发邮件一次,收到的错误或拒绝是什么,订阅和取消订阅过程如何,以及什么是您实际提供给客户的服务.此外,要好一点:发送这些邮件可能对您的业务至关重要,对此感到恐慌并声称可怕的损失与他们无关.对事实和愿望的礼貌陈述,以及询问他们是否可以提供帮助,而不是要求解决方案,这需要很长的路要走.避免被标记为垃圾邮件
衡量成功率
总而言之,所有日志记录,用户界面,每个域/电子邮件/用户等的可配置设置.我们花了大约1.5个人月来构建和消除这些怪癖.与外包电子邮件相比,这可能是一项相当大的投资,可能不是,这完全取决于数量和业务本身.
现在,让火焰开始让我在PHP中编写MTA是一个傻瓜,我非常喜欢它(这是我编写大量文本的一个原因),以及极其通用的日志记录和设置功能,每个主机基于故障百分比等的警报正在生效哦这么容易;)
使用像Swiftmailer,PHPmailer或Zend_mail这样的东西是使用简单mail()功能的更好的替代方法,因为它可以很容易地标记为垃圾邮件.邮件中存在太多需要考虑的问题 - 大多数问题都是通过使用预先存在的库来解决的.
手动发送群发电子邮件时需要解决的几个问题:
使用错误的标题.
处理退回邮件
由于电子邮件的涌入而导致脚本失效.
编辑:
可能不是你想要的答案.但是,我强烈建议你投资一些像Campaign Monitor或Mail Chimp这样的东西.由于这个过程不是出于教育目的,而是出于商业目的,我强烈建议上述服务.