PHP 电子邮件编码器,以减少垃圾邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 电子邮件编码器,以减少垃圾邮件相关的知识,希望对你有一定的参考价值。

/**
 * Description: E-Mail encoder to reduce spam.
 *
 * @author Micke Johansson
 *
 * $mail. The e-mail address to encode.
 * $isLink. Set to true to create a link.
 * $display. What will be displayed in the browser. If omitted it will display the e-mail address.
 *
 * @param string $mail
 * @param bool $isLink
 * @param string $display
 * @return string Encoded e-mail or e-mail link
 */
function EncodeMail($mail, $isLink = false, $display = '')
{
	$domain = substr($mail,strpos($mail, '@')+1);
	$name = substr($mail,0, strpos($mail, '@'));
	$encodedDomain = '';
	$encodedName = '';
	$encodedDisplay = '';
	
	for ($i=0; $i < strlen($domain); $i++)
	{
		$encodedDomain .= '&#'.ord(substr($domain,$i)).';';
	}
	for ($i=0; $i < strlen($name); $i++)
	{
		$encodedName .= '&#'.ord(substr($name,$i)).';';
	}
	for ($i=0; $i < strlen($display); $i++)
	{
		$encodedDisplay .= '&#'.ord(substr($display,$i)).';';
	}
	$script = "<script type=\"text/javascript\">";
	$script .= "d=\"".$encodedDomain."\";";
	$script .= "n=\"".$encodedName."\";";
	if ($isLink)
	{
		if ($display == '')
			$script .= "document.write('<a href=\"mailto:'+n+'@'+d+'\">'+n+'@'+d+'</a>');";
		else
			$script .= "document.write('<a href=\"mailto:'+n+'@'+d+'\">".$encodedDisplay."</a>');";
	}
	else 
	{
		$script .= "document.write(n+'@'+d);";
	}
	$script .= "</script>";
	return $script;
}

以上是关于PHP 电子邮件编码器,以减少垃圾邮件的主要内容,如果未能解决你的问题,请参考以下文章

PHP 针对垃圾邮件发送者编码邮件

夹缝中求生存-在一无所有的php虚拟主机环境下利用smtp发送邮件

针对垃圾邮件发送者对电子邮件进行编码

由机器人发送垃圾邮件的 CodeIgniter 会话

actionmailer 编码 - 在电子邮件客户端中呈现垃圾

通过使用.htaccess减少WordPress博客上的垃圾邮件