phpmailer,乱码是如何产生的?

正在做一些自己网站的事情,又遇到了发邮件的一些难题,以前写过一些发邮件的方法,但不知道什么时候失效了,可能我使用的smtp服务器做了更改,所以我就接受了很多人的意见使用phpmailer发邮件,具体方法,网上有的是,Google,baidu,yahoo,soso应有尽有……

不过还是遇到问题了,虽然利用phpmailer每次都能正常发出,但发出的中文邮件在Gmail,hotmail里面显示正常,但在126,163里面全是乱码,折腾了一下午,除了能修正标题的乱码问题外,内部代码始终不能解决。编码在utf-8和GB2312之间换了又换……

功夫不负有心人,终于发现问题所在。这次开发程序计划与国际接轨,使用的页面编码都是utf-8的,都是这个因素造成的,将utf-8换为ANSI便没有任何问题了,这么说来126等国内邮箱还不支持utf-8编码的邮件!但是如果这样是不是要考虑将页面程序和邮件程序分开呢……

This entry was posted in Uncategorized. Bookmark the permalink.

5 Responses to phpmailer,乱码是如何产生的?

  1. Fwolf says:

    建议你放弃对126邮箱不“国际化”的部分的支持
    既然网站都utf8了,干嘛还要保留gb2312作甚?
    如果能促使126改进程序就更好了

  2. Silbo says:

    据我所知,网易的邮箱占据了国内很大一块市场,咱们的针对的用户还是国内居多,迫于这种情况,我不得不妥协啦

  3. Fwolf says:

    如果你把源码改成ansi的,以后移植程序还是会有问题
    倒不如源码使用utf8的,在和126服务器通信的时候再用iconv转换编码
    是不是更合适一些?

  4. Silbo says:

    恩,我也不是全部都转化,已经解决这个问题了,仅仅在发邮件的时候作了代码处理

  5. 自由自在 says:

    试一下:
    $mail->CharSet = “UTF-8″;