通过SMTP在PHP中发送电子邮件。隐藏服务器IP

时间:2012-12-17 22:02:41

标签: php email networking smtp

我的应用程序的用户可以通过他们的SMTP信息发送电子邮件。

我想代表他们的SMTP发送100%的电子邮件。如果有人开始发送垃圾邮件,我不希望其他用户受到负面影响。

但是在收到的标题中,我看到了我的服务器IP,所以我认为每个人都会受到影响。

如何确保服务器不承担责任?我需要确保一个人不会搞砸其他人。

2 个答案:

答案 0 :(得分:1)

由于您是中间人,因此您代表其他人连接到SMTP服务器,由您的应用程序来处理垃圾邮件。你无法在网络层面解决这个问题。

答案 1 :(得分:0)

由于您在PHP发送的电子邮件的标题中看到了您的服务器IP,我是正确的假设:

  1. 您正在运行自己的SMTP服务器(因此标题中的“我的服务器IP”)?
  2. 您的用户是否可以通过SMTP通过身份验证(可能是SASL)访问此服务器?
  3. 当您从PHP向SMTP服务器提交邮件时,您使用的是SMTP凭据进行身份验证吗?
  4. 如果确实如此,那么对于遭到入侵和发送垃圾邮件的用户的保护,您确实有一些有限的选择。

    第一个选项是在PHP应用程序中实现速率限制,使用持久存储来记录一段时间内发送的电子邮件数量。但是,此解决方案非常有限,因为它不包括滥用SMTP服务器本身。

    我的建议是调查政策服务器,例如policyd并实施quotas。使用指定每小时最大发送速率的SASL用户名的配额将有助于降低添加到垃圾邮件黑名单的可能性。如果您选择的策略服务器支持达到配额通知,我也会实现(允许您识别定期命中配额的用户,表明帐户出现问题)。

    确定您希望限制发送的速率很困难,因为您必须平衡用户需求与保护。也许一个好的起点是监控用户当前每小时发送的平均电子邮件数量,并以此为出发点?

    同样,上述假设上述三点是正确的。如果您只是在没有身份验证的情况下将邮件传递给SMTP守护程序,或者服务器是外部的并且无法修改,那么您将不得不在PHP中强制执行限制。