Php CodeIgniter:如何发送带有非拉丁字符的HTML电子邮件

Php CodeIgniter:如何发送带有非拉丁字符的HTML电子邮件,php,codeigniter,utf-8,Php,Codeigniter,Utf 8,我正在为非政府组织开发一个开源休假管理系统。软件必须有多种语言版本;例如法语和高棉语 我正在努力使用CodeIgniter 2.2.0发送HTML电子邮件。我知道这是可能的,这个问题已经在这里提出了。但我还是失败了 我正在努力实现的目标: 解析视图以创建电子邮件的HTML正文 以HTML格式发送电子邮件 这适用于英语内容,但在电子邮件包含非拉丁字符时不起作用 我遵循了前面答案的建议: 我的项目的所有文件都是UTF-8(无BOM)编码的 有些人建议将“换行”和“crlf”设置设置为“\r\n

我正在为非政府组织开发一个开源休假管理系统。软件必须有多种语言版本;例如法语和高棉语

我正在努力使用CodeIgniter 2.2.0发送HTML电子邮件。我知道这是可能的,这个问题已经在这里提出了。但我还是失败了

我正在努力实现的目标:

  • 解析视图以创建电子邮件的HTML正文
  • 以HTML格式发送电子邮件
这适用于英语内容,但在电子邮件包含非拉丁字符时不起作用

我遵循了前面答案的建议:

  • 我的项目的所有文件都是UTF-8(无BOM)编码的
  • 有些人建议将“换行”和“crlf”设置设置为“\r\n”
让我们以我的项目为例:

  • 包含电子邮件HTML正文的(法文示例):
  • 发送电子邮件的服务器:
  • 我使用的配置(我尝试了各种SMTP服务器;demo.leave-management-system.org连接到GMail):


经过大量的搜索,我放弃了,决定使用PHPMailer和CodeIgniter的包装。我不知道哪里出了问题,但唯一可行的方法是显式地将Encoding属性设置为quoted printable,如使用PHPMailer的本例所示:

<?php
echo "Start<br />\n";
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'localhost';
$mail->Port = 25;
$mail->setFrom('test@gmail.com', 'ប្រភេទនៃការសុំច្បាប់');
$mail->addAddress('target@example.com');
$mail->WordWrap = 70;
$mail->CharSet  = 'UTF-8';
$mail->Encoding = 'quoted-printable';
$mail->XMailer  = 'Test';
$mail->IsHTML(true);
$message = '<html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"><meta charset="UTF-8"></head><body>test: <ul><li>ប្រភេទឈប់សម្រាកបានធ្វើអោយទាន់សម័យដោយជោគជ័យ</li></ul></body></html>';
$mail->Subject = 'Khmer - ប្រភេទនៃការសុំច្បាប់';
$mail->Body = $message;
$mail->send();

,希望这有帮助,我已经读过这个答案了。给出的解决方案是在配置数组中将“charset”设置为“utf-8”。我这样做了,但没有解决问题。另外,这个问题与主题有关,我的问题与按摩有关。无论如何谢谢你。我明白了,你看到了吗?这篇文章是关于PHPMailer的。虽然它们很相似,但我使用的是CodeIgniter的电子邮件类,而不是这个库。我已经仔细阅读了它,但没有什么新的内容(如文章中提到的,字符集设置为“utf-8”)。我再次同意,但CI电子邮件库和php mailer的核心是相同的。您可以在system->library文件夹中检查email.pho文件
<?php
echo "Start<br />\n";
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'localhost';
$mail->Port = 25;
$mail->setFrom('test@gmail.com', 'ប្រភេទនៃការសុំច្បាប់');
$mail->addAddress('target@example.com');
$mail->WordWrap = 70;
$mail->CharSet  = 'UTF-8';
$mail->Encoding = 'quoted-printable';
$mail->XMailer  = 'Test';
$mail->IsHTML(true);
$message = '<html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"><meta charset="UTF-8"></head><body>test: <ul><li>ប្រភេទឈប់សម្រាកបានធ្វើអោយទាន់សម័យដោយជោគជ័យ</li></ul></body></html>';
$mail->Subject = 'Khmer - ប្រភេទនៃការសុំច្បាប់';
$mail->Body = $message;
$mail->send();