使用php在安全/无垃圾邮件的按钮上发送自动电子邮件

时间:2012-02-20 21:48:24

标签: php javascript spam spam-prevention

我正在建筑物入口处为自助服务终端创建一个网页,因此一个页面上将有4个按钮,每个部门的名称都在上面。每次单击按钮时,都会将电子邮件发送到相应的部门电子邮件地址,以通知访问者在此处。

我发布了另一个相关的问题,有人说会有一个安全漏洞,因为部门会得到很多垃圾邮件,因为这将被托管在我公司的子域上。克服它的最佳方法是什么?我可以使用一些PHP代码来修复垃圾邮件问题吗?

任何代码或有用的链接都将受到赞赏。

这是我目前正在使用的代码,如果您有更好的建议,我可以完全改变它。感谢。

<form action="" method="post">
<input type="submit" value="Send details to A" />
<input type="hidden" name="button_a" value="1" />
</form>

<?php

if(isset($_POST['button_a']))
{

$to      = 'name@ourcompany.com'; 

$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@ourcompany.com' . "\r\n" .
'Reply-To: webmaster@ourcompany.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

echo 'Email Sent.';
}

?>

2 个答案:

答案 0 :(得分:4)

您可以做的第一件事就是找出Kiosk的IP地址,并且只允许这样做。

if ($_SERVER['REMOTE_ADDR'] != $ip_of_kiosk) exit;

答案 1 :(得分:2)

这是非常正确的,任何机器人(特别是谷歌)可以读取的纯文本电子邮件地址将很快被垃圾邮件发送者接收。

一些方法:以某种方式处理垃圾邮件。当然不是首选的选项,有很多缺点,很少有专业人士。更不用说业务的潜在成本了。

第二种方法,将电子邮件地址嵌入图像中。这就是Facebook通常在原生FB gui中显示电子邮件地址的方式。

第三种方法是对代码中的电子邮件地址进行模糊处理,并且只允许您的脚本在发送电子邮件时访问salt进行解密。

最后但并非最不重要的是,此评论适用于以上所有内容:请确保您的robots文件明确停止标准SE机器人进一步挖掘您的应用程序,而不是进一步降低地址被病毒式传输的风险进入公共领域。