[英]mail() function at PHP with weird chars
我正在使用php郵件功能,它工作得很好,我真的不喜歡使用這個功能但是必須為這個功能做。
所以問題是,特殊的歐洲字符在電子郵件中以有趣的方式顯示,我試圖將編碼設置為iso-8859-1,同樣的情況正在發生:
$to = $eemail;
$subject = $campos[4];
$message = $campos[5];
$message = mb_convert_encoding($message, 'HTML-ENTITIES', 'iso-8859-1');
$from = $campos[1];
$headers = "From:".$from."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-Mailer: PHP". phpversion() ."\r\n";
其余的是基本郵件表單,通過AJAX發送:
$(function() {
$(".submita").click(function() {
var nome = $('#nome').attr('value');
var email = $('#email').attr('value');
var telemovel = $('#telemovel').attr('value');
var loja = $('#loja').attr('value');
var assunto = $('#assunto').attr('value');
var mensagem = $('#mensagem').attr('value');
var dataString = 'nome='+ nome + '&email=' + email + '&telemovel=' + telemovel + '&loja=' + loja + '&assunto=' + assunto + '&mensagem=' + mensagem;
$.ajax({
type: "POST",
url: "ajaxload/conemail.php",
data: dataString,
success: function() {
$(".mensagem").fadeIn();
}
});
return false;
});
});
出了什么問題?
來自php.net的這個鏈接
http://php.net/manual/en/function.mail.php
希望這有幫助,這是我給這個phpl頁面的小內容
Sending messages with polish special characters:
<?php
function plmail($mail, $sub, $mes){
$headers = "From: ExRobot <robot@example.com>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .="Content-Transfer-Encoding: 8bit";
$mes=htmlspecialchars_decode($mes,ENT_QUOTES);//optional - I use encoding to POST data
mail($mail, "=?utf-8?B?".base64_encode($sub)."?=", $mes, $headers);
}
?>
Page must be in utf-8 encoding.
如果您的編碼或“編碼”在不同平台上有所不同(即消息/電子郵件,表格,網絡瀏覽器等),您將得到奇怪的結果......
大多數時候你會想要使用utf-8
編輯,如果你不能使用utf-8,但控制顯示消息的頁面,你可以設置一個元標記
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.