PHP 发送带有自定义和回复的UTF-8编码邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 发送带有自定义和回复的UTF-8编码邮件相关的知识,希望对你有一定的参考价值。

function send_mail($to, $subject, $message, $from_name, $from_email, $reply_to_name=false, $reply_to_email=false) {
	if($reply_to_name == false) $reply_to_name = $from_name;
	if($reply_to_email == false) $reply_to_email = $from_email;
	if(!preg_match("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,6}^", $to)){
		return false;
	}
	if(!preg_match("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,6}^", $from_email)){
		return false;
	}
	if(!preg_match("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,6}^", $reply_to_email)){
		return false;
	}
	$headers  = 'MIME-Version: 1.0' . PHP_EOL;
	$headers .= 'From: '.$from_name.' <'.$from_email.'>' . PHP_EOL;
	$headers .= 'Reply-To: '.$reply_to_name.' <'.$reply_to_email.'>' . PHP_EOL;
	$headers .= 'Return-Path: '.$from_name.' <'.$from_email.'>' . PHP_EOL;
	$headers .= 'Content-Type: text/html; charset=UTF-8'.PHP_EOL;
	$headers .= 'Content-Transfer-Encoding: base64 '.PHP_EOL;
	$headers .= 'X-Mailer: PHP/' . phpversion();
	
	$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
	$message = chunk_split(base64_encode($message));
	
	if(@mail($to, $subject, $message, $headers)) {
		return true;
	}
	else {
		return false;
	}
}

以上是关于PHP 发送带有自定义和回复的UTF-8编码邮件的主要内容,如果未能解决你的问题,请参考以下文章