协议:
smtp 发送邮件协议
pop3 和imap 从邮件服务器检索邮件,imap比pop3更新,功能更强大
邮箱服务器和端口
不同的邮箱服务器,针对不同的协议都有各自的host 和port 还有sslPort
ssl
是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
javamail
java 提供的类库,调用可以使用不同的协议进行收发邮件
MIME
MIME协议是对RFC822文档的升级和补充,用MIME协议能生成一封有文字、图片和附件的复杂邮件。首先要导入activation.jar和mail.jar。Mail.jar的下载地址是:
接收邮件
//authCode 在邮箱服务器上开启imap/smtp 服务后,服务器会提供给你一个授权码
URLName urln = new URLName("imap",imapHost,imapPort, null,email,authCode);
// 创建IMAP协议的Store对象
Store store = session.getStore(urln);
store.connect();
// 获得收件箱
Folder folder = store.getFolder("INBOX");
// 以读写模式打开收件箱
folder.open(Folder.READ_WRITE);
//找到那些未读邮件
Message[] messages = folder.search(
new FlagTerm(new Flags(Flags.Flag.SEEN), false));
//解析邮件并存储到数据库中
parseMessage(messages,email);
public static void parseMessage(messages,email){
if (messages == null || messages.length < 1){
logger.info("未找到要解析的邮件!");
}
// 解析所有邮件
for (int i = 0, count = messages.length; i < count; i++) {
MimeMessage msg = (MimeMessage) messages[i];
String subject = MimeUtility.decodeText(msg.getSubject());
String from= MimeUtility.decodeText(msg.getFrom());
// Address[] subject = msg.getAllRecipients();
Address[] subject = msg.getRecipients(type);
}