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编码邮件的主要内容,如果未能解决你的问题,请参考以下文章

Outlook 未显示 UTF-8 编码文本 (یب سائٹ Ù) 通过 php 邮件发送的电子邮件

JavaMail 从字符串发送邮件附件 - 编码 UTF-8

联系表单电子邮件中主题的 UTF-8 编码

Laravel API JSON 自定义和表关系

php 在wordpress函数中添加一个类,用于自定义和创建博客PREV和NEXT链接

php WordPress插件,用于为WP多站点按站点存储自定义和内置用户字段。适合多语言设置。自定义为y