用phpmail发送邮件乱码的问题

ZBC_killer 2013-06-09 05:11:43
请大神指教下,我用phpmail来发送邮件,编码格式都设置成utf-8,但是客户那边是用foxmail客户端来打开邮件的,结果看的都是乱码,有什么办法可以解决吗?
...全文
174 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
朝三不暮四 2013-06-25
  • 打赏
  • 举报
回复
怎么解决的,我正好也遇到这个问题了
ZBC_killer 2013-06-09
  • 打赏
  • 举报
回复
问题找到原因了,解决了。。。。
ZBC_killer 2013-06-09
  • 打赏
  • 举报
回复
没有人遇到这方面的问题吗?
ZBC_killer 2013-06-09
  • 打赏
  • 举报
回复
是的,我是用smarty模板做的。模板是service.html,页面上面<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />也有也php页面调用$smarty->display('service.html');
ywq0127 2013-06-09
  • 打赏
  • 举报
回复
你的发php文件本身的编码是不是utf-8
ZBC_killer 2013-06-09
  • 打赏
  • 举报
回复
有没有办法解决呢??呜呜
ZBC_killer 2013-06-09
  • 打赏
  • 举报
回复
其实问题主要还是foxmail客户端默认显示邮件的格式是西欧,只要把编码格式换成utf-8就可以显示正常,但是我不明白的为什么不能一开始就直接显示的是utf-8,而且我看到一些其他网站发的邮件,他们就可以一接受就是utf-8的格式,这是为什么呢?所以我在想是不是自己哪里还没有设置或者少做了什么步骤!!真谢谢你的帮忙!!
ZBC_killer 2013-06-09
  • 打赏
  • 举报
回复
php文件我在最顶部加上了header("Content-Type: text/html; charset=utf-8");这句话还是不行
一起混吧 2013-06-09
  • 打赏
  • 举报
回复
php 文件呢,用编辑器设置为utf-8 编码后再试试。
ZBC_killer 2013-06-09
  • 打赏
  • 举报
回复
目前知道的就是修改这些!!
ZBC_killer 2013-06-09
  • 打赏
  • 举报
回复
1、phpmailer.inc.php里面的var $CharSet = "UTF-8"; 2、发送的内容$content="<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/></head><body>测试内容</body></html>"
一起混吧 2013-06-09
  • 打赏
  • 举报
回复
你都设置了哪些编码,说明一下看看。
ZBC_killer 2013-06-09
  • 打赏
  • 举报
回复
分不多,但是真心希望有人能帮帮我,谢谢好心人了
自动邮件发送博客文章的WordPress插件完成一项很简单的功能,每当一篇博客文章发布后,WordPress会自动发送一封Email邮件到几个指定的电子信箱之中。这个 插件是修改自一个名为Post2Mail的邮件插件,可惜原插件作者已经删除此插件的下载和更新,而且原插件不支持中文,中文内容的文章将被发送为乱码, 同时原插件还有一个小小的安全漏洞,别人可以查看配置源代码。因此我就在这个插件的基础上进行了一番修改,修改相关的问题并使其完全支持中文系统。   新增加的功能   1、使用base64对中文邮件标题进行编码,完美支持中文邮件标题,在任何客户端显示都没有邮件标题乱码。   2、邮件的内容也完美支持中文。   3、修改了原来插件的安全漏洞。   如何使用这个插件   修改post2mail.config.php文件,增加邮件地址到配置文件中,我们知道MSN Live Spaces和Blogspot都有邮件发布博客功能,我们可以将Live Spaces和Blogspot的邮件发送地址填入,这样,每当我们在WordPress中发布一篇文章,这篇文章都会自动更新到MSN Spaces和BlogSpot.这样就可以同时更新三个博客了。   新的修改汉化版的POST2MAIL我目前在Google的Blogger和微软的MSN Spaces的邮件发送上测试成功,发送邮件的内容均没有乱码。   本程序在Apache和PHP5环境下测试通过,不需要配置邮件服务器就可以发送邮件
PHPMailer邮件类的使用 第一步:需要下载PHPMailer文件包phpmailer-1.73.tar.gz 来自开源社区: http://phpmailer.sourceforge.net/ 第二步:确认你的服务器系统已经支持socket 如下图,通过phpinfo();查看是否支持sockets   如果没有这一项就请注意: socket 是属于PHP扩展部分,编译时必须给定一个用于./configure --enable-sockets 的配置选项。 第三步:把文件解压到你的web服务器目录下,调用类就可以了,说明:首先包含 class.phpmailer.php,然后创建对象,设置参数,调用成员函数。具体请见下面的示例代码: php require("phpmailer/class.phpmailer.php"); function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name) { $mail = new PHPMailer(); $mail->IsSMTP(); // send via SMTP $mail->Host = "200.162.244.66"; // SMTP servers $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = "yourmail"; // SMTP username 注意:普通邮件认证不需要加 @域名 $mail->Password = "mailPassword"; // SMTP password $mail->From = "yourmail@163.com"; // 发件人邮箱 $mail->FromName = "163.com管理员"; // 发件人 $mail->CharSet = "GB2312"; // 这里指定字符集! $mail->Encoding = "base64"; $mail->AddAddress($sendto_email,"username"); // 收件人邮箱和姓名 $mail->AddReplyTo("yourmail@163.com","163.com"); //$mail->WordWrap = 50; // set word wrap //$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment //$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); $mail->IsHTML(true); // send as HTML // 邮件主题 $mail->Subject = $subject; // 邮件内容 $mail->Body = ' 欢迎来到http://www.163.com

感谢您注册为本站会员!

'; $mail->AltBody ="text/html"; if(!$mail->Send()) { echo "邮件发送有误

"; echo "邮件错误信息: " . $mail->ErrorInfo; exit; } else { echo "$user_name 邮件发送成功!
"; } } // 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名) smtp_mail('yourmail@163.com', '欢迎来到163.com!', 'NULL', '163.com', 'username'); ?> 要注意的内容:   1. 邮件的字符集设置, $mail->CharSet = "GB2312"; // 这里指定字符集!在这里我只指定为GB2312因为这样Outlook能正常显示邮件主题,我尝试过设为utf-8,但在Outlook下显示乱码。   2. 如果是发送html格式的邮件,那么记得也指定为   3. 如果你想用它来群发邮件的话,记得修改包含文件函数,如:   require("phpmailer/class.phpmailer.php");   改为   require_once("phpmailer/class.phpmailer.php");   否则的话会产生类的重定义。 //使用心得 用sina的刚注册就可以发送 $mail->Host = "smtp.sina.com"; // SMTP servers 用163的刚注册不能发送,得用注册时间长的才可以用

利用Java发送邮件(含附件)的例子 1、邮件发送的配置propertity文件内容如下:(utils.properties文件放在src下面) emailsmtp=smtp.qq.comemailaddress=459104018@qq.comemailpass=******2、读取配置文件的类文件(ReadPropertity.java) import java.io.IOException;import java.util.Properties;public class ReadPropertity { static Properties props = new Properties(); static { try { props.load(ReadPropertity.class.getClassLoader().getResourceAsStream( "utils.properties")); } catch (IOException e1) { e1.printStackTrace(); } } public static String getProperty(String key) { return props.getProperty(key); }}3、邮件处理类(EmailHandle.java)import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;/*** 本程序用java来实现Email的发送, 所用到的协议为:smtp*

Company: 疯狂的IT人

* time:2013-04-05* @author www.crazyiter.com* @date * @version 1.0 */public class EmailHandle { private MimeMessage mimeMsg; //邮件对象 private Session session; //发送邮件的Session会话 private Properties props;//邮件发送时的一些配置信息的一个属性对象 private String sendUserName; //发件人的用户名 private String sendUserPass; //发件人密码 private Multipart mp;//附件添加的组件 private List files = new LinkedList();//存放附件文件 public EmailHandle(String smtp) { sendUserName = ""; sendUserPass = ""; setSmtpHost(smtp);// 设置邮件服务器 createMimeMessage(); // 创建邮件 } public void setSmtpHost(String hostName) { if (props == null) props = System.getProperties(); props.put("mail.smtp.host", hostName); } public boolean createMimeMessage(){ try { // 用props对象来创建并初始化session对象 session = Session.getDefaultInstance(props, null); } catch (Exception e) { System.err.println("获取邮件会话对象时发生错误!" + e); return false; } try { mimeMsg = new MimeMessage(session); // 用session对象来创建并初始化邮件对象 mp = new MimeMultipart();// 生成附件组件的实例 } catch (Exception e) { return false; } return true; } /** * 设置SMTP的身份认证 */ public void setNeedAuth(boolean need) { if (props == null) props = System.getProperties(); if (need) props.put("mail.smtp.auth", "true"); else props.put("mail.smtp.auth", "false"); } /** * 进行用户身份验证时,设置用户名和密码 */ public void setNamePass(String name, String pass) { sendUserName = name; sendUserPass = pass; } /** * 设置邮件主题 * @param mailSubject * @return */ public boolean setSubject(String mailSubject) { try { mimeMsg.setSubject(mailSubject); } catch (Exception e) { return false; } return true; } /** * 设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8 * @param mailBody * @return */ public boolean setBody(String mailBody) { try { BodyPart bp = new MimeBodyPart(); bp.setContent(""+ mailBody, "text/html;charset=UTF-8"); // 在组件上添加邮件文本 mp.addBodyPart(bp); } catch (Exception e) { System.err.println("设置邮件正文时发生错误!" + e); return false; } return true; } /** * 增加发送附件 * @param filename * 邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常 * @return */ public boolean addFileAffix(String filename) { try { BodyPart bp = new MimeBodyPart(); FileDataSource fileds = new FileDataSource(filename); bp.setDataHandler(new DataHandler(fileds)); bp.setFileName(MimeUtility.encodeText(fileds.getName(),"utf-8",null)); // 解决附件名称乱码 mp.addBodyPart(bp);// 添加附件 files.add(fileds); } catch (Exception e) { System.err.println("增加邮件附件:" + filename + "发生错误!" + e); return false; } return true; } public boolean delFileAffix(){ try { FileDataSource fileds = null; for(Iterator it = files.iterator() ;it.hasNext();) { fileds = (FileDataSource)it.next(); if(fileds != null && fileds.getFile() != null){ fileds.getFile().delete(); } } }catch (Exception e) { return false; } return true; } /** * 设置发件人地址 * @param from * 发件人地址 * @return */ public boolean setFrom(String from) { try { mimeMsg.setFrom(new InternetAddress(from)); } catch (Exception e) { return false; } return true; } /** * 设置收件人地址 * @param to收件人的地址 * @return */ public boolean setTo(String to) { if (to == null) return false; try { mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to)); } catch (Exception e) { return false; } return true; } /** * 发送附件 * @param copyto * @return */ public boolean setCopyTo(String copyto) { if (copyto == null) return false; try { mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,InternetAddress.parse(copyto)); } catch (Exception e) { return false; } return true; } /** * 发送邮件 * @return */ public boolean sendEmail() throws Exception{ mimeMsg.setContent(mp); mimeMsg.saveChanges(); System.out.println("正在发送邮件...."); Session mailSession = Session.getInstance(props, null); Transport transport = mailSession.getTransport("smtp"); // 连接邮件服务器并进行身份验证 transport.connect((String) props.get("mail.smtp.host"), sendUserName,sendUserPass); // 发送邮件 transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO)); System.out.println("发送邮件成功!"); transport.close(); return true; }}4、邮件发送的类文件(SendEmail.java)/*** 发送邮件测试*

Company: 疯狂的IT人

* time:2013-04-05* @author www.crazyiter.com* @date * @version 1.0 */public class SendEmail { public SendEmail() { } /***以后需要两个参数:接收方地址 、 内容***/ public static void send(String subject, String toaddress,String content)throws Exception { String hostName = ReadPropertity.getProperty("emailsmtp"); String fromAddress = ReadPropertity.getProperty("emailaddress"); String fromAPass = ReadPropertity.getProperty("emailpass"); EmailHandle emailHandle = new EmailHandle(hostName); emailHandle.setFrom(fromAddress); emailHandle.setNeedAuth(true); emailHandle.setSubject(subject); emailHandle.setBody(content); emailHandle.setTo(toaddress); emailHandle.setFrom(fromAddress); emailHandle.addFileAffix("D:/myself/help/txt/java环境变量.txt");// 附件文件路径 emailHandle.setNamePass(fromAddress, fromAPass); emailHandle.sendEmail(); } public static void main(String[] args) { try { SendEmail.send("带附件的邮件测试","459104018@qq.com","测试内容
疯狂的IT人"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}5、发送邮件需要的jar包:activation.jarmail-plugin.jarmail.jar6、打包下载: 疯狂的IT人整理java邮件发送(源码).rar 下载地址: http://www.crazyiter.com/bbs/forum.php?mod=attachment&aid=MjF8MzQzOTYzZjB8MTM2NTE3NjczMHwxfDExNDA%3D

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧