自己搞好了,参考了一下其他的发邮件的类。希望对大家以后有帮助啦,现在总结一下,有东西大家分享
^_^
问题:用mail()函数发送的,$mailsuccess=mail($to, $subject, $message, $headers);
$subject是邮件标题,$message是内容,$headers是头文件信息
$message内容的乱码,我是通过发送html的形式来指定页面编码来解决的,meta可以设置的,而指定使用html的$header里面Content-type: text/html; charset=UTF-8" . "\r\n";也可以设置,哪个起作用就不知道了
$subject的乱码是经过base64_encode()处理,然后设置一些信息,后解决的,$headers里指定发送者也是这种方法解决的,不过$headers变量不能整个编码,只能对发送者进行编码,否者,大家可以试下是什么结果^_^,下面把例子贴出来,大家一起研究下
对中文进行处理
PHP代码如下:
function
Encode
(
$str
){
//对中文进行编码
$str = base64_encode ( $str );
$str = "=?" . "UTF-8?B?" . $str . "?=" ;
return $str ;
}
$str = base64_encode ( $str );
$str = "=?" . "UTF-8?B?" . $str . "?=" ;
return $str ;
}
$to
= [
email
=
example
@
mail
.
com
]
example
@
mail
.
com
[/
email
];
// to email
$post = "中文中文" ;
$subject = ' 中文中文;
$userName=Encode($userName);
$post=Encode($post);
$subject=Encode($subject);
$message = <<<eot
<html>
<head>
<title>Active Member</title>
<meta http-equiv="Content-Type" c />
</head>
<body>
<p>中文中文</p>
</body>
</html>
eot;
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=UTF-8" . "\r\n";//UTF-8
// Additional headers
$headers .= "To: $userName [email=example@mail.com]example@mail.com[/email]" . "\r\n";
$headers .= "From:$post<[email=apache@inhouse.youtig.com]ex[/email]ample@mail.com>" . "\r\n";//$post是一般的邮箱显示的发送者,英文当然没问题了,中文就必须处理
$headers .= "Cc: [email=example@mail.com]example@mail.com[/email]" . "\r\n";
$headers .= "Bcc:[email=example@mail.com]example@mail.com[/email]". "\r\n";
$mailsuccess=mail($to, $subject, $message, $headers);
$post = "中文中文" ;
$subject = ' 中文中文;
$userName=Encode($userName);
$post=Encode($post);
$subject=Encode($subject);
$message = <<<eot
<html>
<head>
<title>Active Member</title>
<meta http-equiv="Content-Type" c />
</head>
<body>
<p>中文中文</p>
</body>
</html>
eot;
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=UTF-8" . "\r\n";//UTF-8
// Additional headers
$headers .= "To: $userName [email=example@mail.com]example@mail.com[/email]" . "\r\n";
$headers .= "From:$post<[email=apache@inhouse.youtig.com]ex[/email]ample@mail.com>" . "\r\n";//$post是一般的邮箱显示的发送者,英文当然没问题了,中文就必须处理
$headers .= "Cc: [email=example@mail.com]example@mail.com[/email]" . "\r\n";
$headers .= "Bcc:[email=example@mail.com]example@mail.com[/email]". "\r\n";
$mailsuccess=mail($to, $subject, $message, $headers);
辛苦,一个小问题搞了一天,希望明天大家会更加好