1,发送邮件
(1)在设置里面打开163邮箱的smtp、pop3,设置授权码
(2)在引用pom.xml中引用mail.jar
<dependency >
<groupId >com.sun.mail </groupId >
<artifactId >javax.mail </artifactId >
<version >1.5.4 </version >
</dependency >
(3)邮件内容不要乱写,否则失败
public class TestJava {
public static void main(String[] args) throws MessagingException {
Properties prop=new Properties();
prop.put("mail.host","smtp.163.com" );
prop.put("mail.transport.protocol", "smtp");
prop.put("mail.smtp.auth", true);
//使用java发送邮件5步骤
//1.创建sesssion
Session session=Session.getInstance(prop);
//开启session的调试模式,可以查看当前邮件发送状态
session.setDebug(true);
//2.通过session获取Transport对象(发送邮件的核心API)
Transport ts=session.getTransport();
//3.通过邮件用户名密码链接
ts.connect("邮箱名", "授权码");
//4.创建邮件
Message msg=createSimpleMail(session);
//5.发送电子邮件
ts.sendMessage(msg, msg.getAllRecipients());
}
public static MimeMessage createSimpleMail(Session session) throws AddressException,MessagingException{
//创建邮件对象
MimeMessage mm=new MimeMessage(session);
//设置发件人
mm.setFrom(new InternetAddress(""));
//设置收件人
mm.setRecipient(Message.RecipientType.TO, new InternetAddress(""));
//设置抄送人
mm.setRecipient(Message.RecipientType.CC, new InternetAddress(""));
mm.setSubject("第一封JAVA邮件!");
mm.setContent("咱们开会吧", "text/html;charset=utf-8");
return mm;
}
}
代码引用:http://www.cnblogs.com/tptptptp/p/5874538.html
2,读取邮件
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.imap.IMAPStore;
/**
* 使用IMAP协议接收邮件
* @author hj
* @time 2017-07-20
*/
public class ReciveIMAPmail {
public static void main(String[] args) {
String imapserver = "imap.163.com"; // 邮件服务器
String user = "用户名";
String password = "授权码"; // 根据自已的密码修改
// 获取默认会话
Properties prop = System.getProperties();
prop.put("mail.imap.host",imapserver);
prop.put("mail.imap.auth.plain.disable","true");
Session mailsession=Session.getInstance(prop,null);
mailsession.setDebug(false); //是否启用debug模式
IMAPFolder folder= null;
IMAPStore store=null;
int total= 0;
try{
store=(IMAPStore)mailsession.getStore("imap"); // 使用imap会话机制,连接服务器
store.connect(imapserver,user,password);
folder=(IMAPFolder)store.getFolder("INBOX"); //收件箱
// 使用只读方式打开收件箱
folder.open(Folder.READ_WRITE);
//获取总邮件数
total = folder.getMessageCount();
System.out.println("-----------------您的邮箱共有邮件:" + total+" 封--------------");
// 得到收件箱文件夹信息,获取邮件列表
Message[] msgs =folder.getMessages();
System.out.println("\t收件箱的总邮件数:" + msgs.length);
System.out.println("\t未读邮件数:" + folder.getUnreadMessageCount());
System.out.println("\t新邮件数:" + folder.getNewMessageCount());
System.out.println("----------------End------------------");
}
catch(MessagingException ex){
System.err.println("不能以读写方式打开邮箱!");
ex.printStackTrace();
}finally {
// 释放资源
try{
if(folder!=null)
folder.close(true); //退出收件箱时,删除做了删除标识的邮件
if (store != null)
store.close();
}catch(Exception bs){
bs.printStackTrace();
}
}
}
}
可能会报错:
javax.mail.MessagingException: A3 NO SELECT Unsafe Login. Please contact kefu@188.com for help;
nested exception is:
然后 输入 http://config.mail.163.com/settings/imap/index.jsp?uid=xxxxxx@163.com
进行手机验证就OK;