phpmailer 和电子邮件垃圾邮件过滤器的问题
Trouble with phpmailer and Email Spambox Filters
我目前正在通过 Bootstrap 4 使用 php 表单进行设置,使用 Bootstrap 验证器进行验证并使用 php 邮件发送。我将 "from" 字段设置为 $_POST['inputEmail'] 并在发送时触发电子邮件过滤器。
表单转到 IT 票务软件,该软件要求电子邮件中的 "from" 字段为客户电子邮件。
我知道最好的做法是让 "from" 字段与您的服务器位于同一域中,但我想知道是否有安全的方法来解决这个问题,这样我就可以使 "from" 填写客户在表格中输入的任何内容或他们的电子邮件地址。
谢谢
实际上没有什么可以阻止您使用用户提供的地址作为发件人地址。与其说它是 "best practice",不如说如果您伪造这样的发件人地址(至少如果您的邮件服务器有任何好处的话),您的电子邮件可能永远不会被送达。您可以配置您的邮件服务器,将您的提交表单列入白名单,作为一个邮件来源,应该免除此类检查,但这也意味着您正在为滥用做好准备。这真是你们票务软件的一个bug。
如果您的票务软件有一些其他方式来创建用户请求,我不会感到惊讶,例如 HTTP API,您可以使用适当的参数调用,包括用户的身份,而无需伪造一个发件人地址。在这方面你并不孤单; google calendar 犯了同样的错误,导致电子邮件退回。
我目前正在通过 Bootstrap 4 使用 php 表单进行设置,使用 Bootstrap 验证器进行验证并使用 php 邮件发送。我将 "from" 字段设置为 $_POST['inputEmail'] 并在发送时触发电子邮件过滤器。
表单转到 IT 票务软件,该软件要求电子邮件中的 "from" 字段为客户电子邮件。
我知道最好的做法是让 "from" 字段与您的服务器位于同一域中,但我想知道是否有安全的方法来解决这个问题,这样我就可以使 "from" 填写客户在表格中输入的任何内容或他们的电子邮件地址。
谢谢
实际上没有什么可以阻止您使用用户提供的地址作为发件人地址。与其说它是 "best practice",不如说如果您伪造这样的发件人地址(至少如果您的邮件服务器有任何好处的话),您的电子邮件可能永远不会被送达。您可以配置您的邮件服务器,将您的提交表单列入白名单,作为一个邮件来源,应该免除此类检查,但这也意味着您正在为滥用做好准备。这真是你们票务软件的一个bug。
如果您的票务软件有一些其他方式来创建用户请求,我不会感到惊讶,例如 HTTP API,您可以使用适当的参数调用,包括用户的身份,而无需伪造一个发件人地址。在这方面你并不孤单; google calendar 犯了同样的错误,导致电子邮件退回。