【问题标题】:mail() function at PHP with weird charsPHP中带有奇怪字符的mail()函数
【发布时间】:2012-04-13 16:41:19
【问题描述】:

我正在使用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;
  }); 
});

出了什么问题?

【问题讨论】:

  • codification - 喜欢它。编码的好新词。
  • @DaveRandom 我真的很抱歉我缺乏英语词汇知识。将“编纂”和“编码”一词翻译成葡萄牙语,最终都以相同的葡萄牙语词结尾。感谢您的帮助。
  • 别担心,我没有去,它只是让我开心:-)

标签: php javascript jquery ajax email


【解决方案1】:

chk 这个链接来自 php.net

http://php.net/manual/en/function.mail.php

希望对你有帮助,这是我给出的 php.net 页面中的小内容

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.

【讨论】:

  • 这个答案的结果是Try encoding it with UTF-8 instead。虽然说起来很笨拙,但这是个好主意。
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 2010-09-05
  • 2014-09-04
  • 2010-10-08
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2012-01-15
  • 2017-10-03
相关资源
最近更新 更多