JavaMail 收发邮件

1,047 阅读1分钟

协议: 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);
				  }