首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Codeigniter电子邮件特殊字符

Codeigniter电子邮件特殊字符
EN

Stack Overflow用户
提问于 2011-12-22 09:46:55
回答 2查看 2.6K关注 0票数 1

我正在尝试使用SMTP协议和一些特殊字符发送带有电子邮件库的电子邮件。问题是,即使使用UTF-8配置,发送的电子邮件也不会包含此特殊字符。

我用的是亚马逊的SES。

看看代码。

代码语言:javascript
运行
复制
   //Libraries
   $ci->load->library('email');
  //Seta gMail
  $config['protocol'] = "smtp";
  $config['smtp_host'] = "ssl://";
  $config['smtp_user'] = "user";
  $config['smtp_pass'] = "pass";
  $config['smtp_port'] = "465";
  $config['smtp_timeout'] = 30;  
  $config['charset'] = "utf-8";
  $config['wordwrap'] = TRUE;
  $config['validate'] = TRUE;
  $config['mailtype'] = "html";
  $config['newline'] = "\r\n";
  $ci->email->initialize($config);
  //Carrega o modelo do e-mail
  $mensagem = $conteudo;
  //Seta variáveis
  $ci->email->from("cool@email.com", $titulo);
  $ci->email->reply_to('cool@email.com', 'New user');
  $ci->email->set_alt_message($conteudo);
  $ci->email->to($email_destino);
  $ci->email->subject($titulo);
  $ci->email->message($mensagem);
  $ci->email->send();  
EN

回答 2

Stack Overflow用户

发布于 2012-05-12 00:09:48

只需对主题进行编码,它就能正常工作。提供的字符串必须是纯文本/无编码,否则将无法工作。

这将会起作用:

代码语言:javascript
运行
复制
$ci->email->subject(utf8_encode("Special characters : éàî"));

这不管用

代码语言:javascript
运行
复制
$ci->email->subject(utf8_encode("Special characters : éàî"));

对于电子邮件正文,不确定所有特殊字符都已正确编码

这将会起作用:

代码语言:javascript
运行
复制
$ci->email->message("<p>Special characters : &eacute;&agrave;&icirc;</p>");

这不管用

代码语言:javascript
运行
复制
$ci->email->message("<p>Special characters : éàî</p>");
票数 0
EN

Stack Overflow用户

发布于 2014-09-29 16:45:25

CodeIgniter内部电子邮件库的问题在于,发送包含非拉丁字符的正文非常麻烦。如果转义欧洲语言的某些字符是可以接受的,那么转义完全由非拉丁字符组成的整个文本是不现实的。

即使某些解决方案似乎有效,您也可能会面临与某些电子邮件客户端的兼容性问题。

更好的解决方案是嵌入PHPMailer库,这比内部CI库要好得多。您可以使用此,并使用函数set_encoding($encoding)编码属性设置为quoted-printable。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8598583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档