Java项目通过发送邮件接收一串乱的东西、有时候发送方也会乱

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java项目通过发送邮件接收一串乱的东西、有时候发送方也会乱相关的知识,希望对你有一定的参考价值。

5qyi6L+O5Yqg5YWlTUIs5Zyo6L+Z6YeM77yM5L2g5Y+v5Lul5YiG5Lqr5L2g55qE55Sf5rS744CC5Zyo5rWP6KeI5Zmo5Zyw5Z2A5qCP6YeM6L6T5YWl5bm26K6/6Zeu5LiL6Z2i5r+A5rS76ZO+5o6l5Y2z5Y+v5a6M5oiQ6LSm5oi35r+A5rS777yaCgogaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlZy9hY3RpdmF0ZT9hdXRoQ29kZT0yYmJmNGRiOWM5NTQ0ZWMzYTllMTk3YjkxZGMyMjJjOQ== 变成了这种

参考技术A 这是你发送邮件的格式不对。邮件系统无法识别你的格式,而造成乱码。
或者是,你的邮箱中病毒了。

java发送邮件

前提:导入发Java邮件的jar包:
activation.jar additionnal.jar(第三方客户端,没有时会) mail.jar
additionnal.jar(第三方客户端,没有时会出现在什么路径下,系统文件找不到)
步骤一:编写发邮件类
package com.gl.util;


import java.util.Properties

import javax.mail.*;
import javax.mail.internet.*;


public class MailUtil {
//传入发邮件的地址和邮件激活码
public static void sendMail(String to,String code){
//发送邮件的服务器
String host = "smtp.qq.com";
//用户名
String username="[email protected]";
//第三方客户端验证密码,需要在QQ邮箱的账户/SMTP/POP3/IMAP下开启/SMTP/POP3
//发短信得到第三方客户端登录验证密码
String password="************";
//Session对象
Properties props = new Properties();
props.put("mail.smtp.host", host);
//发送邮件的端口号
props.put("mail.smtp.port", "465");
/* props.put("mail.transport.protocol", "smtp");*/
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.enable","true");///使用 STARTTLS安全连接
props.put("mail.debug", "true");
Session session = Session.getDefaultInstance(props);

//Message对象
MimeMessage message = new MimeMessage(session);
// 设置发件人
try {
message.setFrom(new InternetAddress(username));
//设置收件人
message.setRecipients(Message.RecipientType.TO,to);
//设置主题
message.setSubject("来自于xionger商城的账号激活邮件");

//设置内容
message.setContent("<h1>来自于熊二商城的账号激活邮件!激活请点击以下链接</h1><br><h3><a href=‘http://localhost:8888/shop/usersActive.action?Users.u_code="+code+"‘>http://localhost:8888/shop/register.action?code="+code+"</a></h3>","text/html;charset=UTF-8");

message.saveChanges(); // implicit with send()

Transport transport = session.getTransport("smtp");

transport.connect(host, username, password);

transport.sendMessage(message, message.getAllRecipients());

transport.close();



} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
第二步:实现类,调用发邮件的方法(注册等等),此例是struts
public String Reg(){
UsersServiceImpl usersServiceImpl=(UsersServiceImpl) ac.getBean("usersService");
users.setU_state(false);
String u_code = UUID.randomUUID().toString().replace("-","");
System.out.println(u_code);
System.out.println(users.getU_email());
users.setU_code(u_code);
usersServiceImpl.save(users);
MailUtil.sendMail(users.getU_email(),u_code);
return "regOK";
}

 

































































以上是关于Java项目通过发送邮件接收一串乱的东西、有时候发送方也会乱的主要内容,如果未能解决你的问题,请参考以下文章

Java实现发邮件功能---网易邮箱

如何在Java ee项目中如何调用outlook发邮件

java 接收邮件附件乱码

设置Linux使用SMTP服务发送邮件

调整SMTP会话连接时间解决邮件无法接收问题

java发送邮件