PHPMailer与Outlook中文乱码的解决方案

2
1453

[hl type=”colored”]留言板和报名表5大技术含量(赠送PHPMailer在Outlook乱码解决方案)[/hl]

网站中最常见的功能就是留言板(报名表也有相同做法),在网页上填写信息,提交后发送至网站管理后台或者指定Email邮箱。看似简单的一个功能,却含蕴着很多技术含量:

 

1 发信SMTP服务器

发送邮件到指定邮箱,需要smtp服务器,可以是需要验证的,QQ、网易、企业邮箱等等均提供此服务。

 

2 用户填写信息的验证

用户填写的数据格式的验证需要JS来完成,比如邮件格式不对,电话号码字段用户填写的是英文是不能给与通过的。

 

验证码

验证码的目的为了防止机器机械的发送垃圾留言,验证码是个组件(程序),他在某些浏览器下可能失效,做的时候需要多测试。

 

4 发信组件

有了SMTP,需要一个发信组件(一段程序),这段程序的功能是:利用发件服务器SMTP,将留言者在页面上录入的信息,投递给指定邮箱。这里以比较好用的、支持附件上传的PHPMailer为例。投递成功与否、投递成功以后跳转到指定页面都是要靠程序来判断的。

 

5 客户端呈现

发送邮件后,用户可能会通过网页的形式来看,或者使用客户端来阅读邮件。如果是用outlook阅读邮件,这个留言板制作方法稍有疏忽,就会出现邮件乱码。解决方法如下:

 

邮件的字符集设置, $mail->CharSet = “GB2312″; // 这里指定字符集!在这里指定为GB2312,因为这样Outlook能正常显示邮件主题,我尝试过设为utf-8但在Outlook下显示乱码。更多注意事项:请访问

 

如果以上方法未解决,你需要把页面head部分的编码变成GB2312,还要把用到的这几个PHPmailer文件、网页模板文件、留言所涉及到的PHP程序文件的文档格式都转成GB2312。方法是:Dreamweaver下ctrl+J,快捷键调出文档属性,将文档变成GB2321。再测试就好了。

2 评论

发表回复

请填写评论
请填写您的名字