0

我正在使用 tectite.com 的 Formmail php 脚本。我使用 formmail.ini 文件来隐藏垃圾邮件发送者的电子邮件地址。该 ini 文件如下所示(该文件中没有其他内容):

[special_fields]
recipients = "name@domainnmame.com"
email = "name@domainnmame.com"

请注意,有两个“特殊字段”,并且它们都使用相同的电子邮件地址。这一切都在几天前工作,已经几个月了,然后脚本停止工作。我通过用来自 tectite.com 的新副本替换它来确定脚本已损坏。但后来我开始收到此错误消息:

FormMail 中出现以下错误:电子邮件地址“”无效:缺少“@”

经过广泛的故障排除后,我发现从 ini 文件中删除行 'email = "name@domainnmame.com"' 可以解决该错误。但我需要恢复该选项。在替换 formmail 脚本时,它已更新到版本 9.26。有任何想法吗?最新版本是否改变了一些东西,使我以前的 ini 文件无法像以前那样工作?我试过单引号。我尝试在两个特殊字段之间使用逗号。我尝试重新输入地址。我尝试了不同的电子邮件地址。我尝试重复“[special_fields]”,每个字段一个。没有骰子...而且我在 tectite.com 上找不到任何两行样本

4

2 回答 2

0

好的,想通了。操作 From 地址的正确方法是使用隐藏字段,如下所示:

<input type="hidden" name="mail_options" value="FromAddr=name@domainnmame.com" />

有几种方法可以向垃圾邮件发送者隐藏电子邮件地址。一是创建别名,如下所示:

<input type="hidden" name="mail_options" value="FromAddr=xxx" />

然后将别名定义添加到 ini 文件中,在我的例子中:

[special_fields]
recipients = "name@domainnmame.com"
[email_addresses] 
xxx = "name@domainnmame.com"

可能可以将 mail_options 放在 ini 文件中,但我的网站在不同页面上有多个表单,每个表单都有自己独特的 mail_options 集(我没有在示例代码中显示其他选项)。我尝试在 ini 文件中拆分 mail_options:一组在 html 代码中,另一组带有 FromAddr 值,但这不起作用。显然,formmail 只支持一行 mail_options。

于 2022-02-19T02:40:25.887 回答
0

“电子邮件”特殊字段用于保存填写表格的人的地址。

所以,一般来说,自己设置是没有意义的。

我建议您在不设置“电子邮件”字段的情况下让您的表单正常工作,然后考虑您尝试设置它的原因。

也许“电子邮件”字段也在您的 HTML 中,并且覆盖了您的 INI 文件设置。但同样,这就是应该发生的事情。

于 2022-02-16T22:17:33.517 回答