Javamail *** 作指南:实例代码解析

Javamail *** 作指南:实例代码解析,第1张

怎样才算比较完整的Javamail *** 作指南?我想应该包括绝大多数基本的email *** 作 能够应付一般的应用 在本指南中主要囊括了以下内容 ● 发送email 包括文本邮件 HTML邮件 带附件的邮件 SMTP验证● 接收email pop 远程连接 收取不同MIME的邮件 处理附件我想有了上述功能的介绍 应该可以应付很多email的相关应用了 首先需要配置环境 需要的包是mail jar和activation jar 高版本的J SDK EE自带 一 邮件的发送 下面了弄个发邮件的Hello World 热热身 /Name:TextMailSender javaAuthor:BromonVersion: Date: Note:发送email到 需要安装SMTP服务器/package bromon mail;import javax mail ;import javax mail internet ;import java util ;public class TextMailSender{public static void main(String args[]){try{Properties prop=new Properties();//指定要使用的SMTP服务器为bromon kprop put( mail tp host bromon k );Session mailSession=Session getDefaultInstance(prop);//发件人地址InternetAddress from=new InternetAddress( bromon@bromon k );//收件人地址InternetAddress to=new InternetAddress( );MimeMessage msg=new MimeMessage(mailSession);msg setFrom(from);msg addRecipient(javax mail Message RecipientType TO to);//发信日期msg setSentDate(new java util Date());//titlemsg setSubject( 你好 );//邮件正文msg setText( hello bromon );Transport send(msg);}catch(Exception e){System out println(e);}}}程序很简单 但是它是不能运行的 除非你的机器上安装了一个SMTP服务器 而且你的机器还叫做bromon k 写这么一段不能执行的程序不是因为其他一些原因 而是想让各位对javamail有个基本印象 下面演示的是如何通过 sohu等email服务商提供的免费邮箱来发邮件 基本 *** 作和上面的一样 只是多一个SMTP验证而已 / Created on /package bromon mail;import javax mail ;import java util ;import javax mail internet ;/ @author Bromon/public class SenderWithSMTPVer{String host= ;String user= ;String password= ;public void setHost(String host){this host=host;}public void setAccount(String user String password){this user=user;this password=password;}public void send(String from String to String subject String content){Properties props = new Properties();props put( mail tp host host);//指定SMTP服务器props put( mail tp auth true );//指定是否需要SMTP验证try{Session mailSession = Session getDefaultInstance(props);mailSession setDebug(true);//是否在控制台显示debug信息Message message=new MimeMessage(mailSession);message setFrom(new InternetAddress(from));//发件人message addRecipient(Message RecipientType TO new InternetAddress(to));//收件人message setSubject(subject);//邮件主题message setText(content);//邮件内容message saveChanges();Transport transport = mailSession getTransport( tp );nnect(host user password);transport sendMessage(message message getAllRecipients());transport close();}catch(Exception e){System out println(e);}}public static void main(String args[]){SenderWithSMTPVer =new SenderWithSMTPVer(); setHost( );//指定要使用的邮件服务器 setAccount( abc );//指定帐号和密码/ @param String 发件人的地址 @param String 收件人地址 @param String 邮件标题 @param String 邮件正文/ send( 标题 内容 );}}这段程序好像也不需要解释了吧 把SMTP地址 帐号 密码等配置信息写到Properties里面 Java里面很多API都需要这么干 比如再程序中加入对代理服务器的支持等 上面的程序修改一下服务器地址 帐号 密码就可以使用 非常简单 如何发送一个HTML格式的Email呢?也很简单 再邮件正文中写入HTML代码 然后指定邮件的ContentType就OK 下面只给出关键代码 ………MimeMessage msg=new MimeMessage(mailSession);msg setContent(content text/ );msg setText( <><body><h >下面的 你们好吗</body></> );………下面是发送带有附件的email 稍微复杂一点 而且和前面的程序有一些不同 请仔细一点 同时需要一点IO的知识 相同的代码就不再列出 只写关键部分 import javax mail ;import javax mail internet ;import javax activation ;import java util ;……… MimeMessage msg=new MimeMessage(mailSession);msg setSentDate(new Date());msg setSubject( hello );MimeBodyPart textBodyPart=new MimeBodyPart();textBodyPart setText( 邮件正文 );MimeBodyPart fileBodyPart=new MimeBodyPart();FileDataSource fds=new FileDataSource( GIS rar );//要发送的附件fileBodyPart setDataHandler(new DataHandler(fds));fileBodyPart setFileName(fds getName());Multipart container=new MimeMultipart();container addBodyPart(textBodyPart);container addBodyPart(fileBodyPart);msg setContent(container);Transport send(msg);………… 二 邮件的收取 通常情况下我们都使用pop 协议来收邮件 IMAP现在就不涉及了 用一个程序就可以基本包括了收邮件的功能 邮件大致可以分三种 纯文本邮件 含有其他数据的文本邮件 含有附件的邮件 / Created on /package bromon mail;import javax mail ;import java util ;import java io ;/ @author Bromon/public class Receiver{Folder inbox;Store store;//连接邮件服务器 获得所有邮件的列表public Message[] getMail(String host String name String password) throws Exception{Properties prop=new Properties();prop put( mail pop host host);Session session=Session getDefaultInstance(prop);store=session getStore( pop );nnect(host name password);inbox=store getDefaultFolder() getFolder( INBOX );inbox open(Folder READ_ONLY);Message[] msg=inbox getMessages();FetchProfile profile=new FetchProfile();profile add(FetchProfile Item ENVELOPE);inbox fetch(msg profile);return(msg);}//处理任何一种邮件都需要的方法private void handle(Message msg) throws Exception{System out println( 邮件主题: +msg getSubject());System out println( 邮件作者: +msg getFrom()[ ] toString());System out println( 发送日期: +msg getSentDate());}//处理文本邮件public void handleText(Message msg) throws Exception{this handle(msg);System out println( 邮件内容: +msg getContent());}//处理Multipart邮件 包括了保存附件的功能public void handleMultipart(Message msg) throws Exception{String disposition;BodyPart part;Multipart mp=(Multipart)msg getContent();int mpCount=mp getCount();//Miltipart的数量 用于除了多个part 比如多个附件for(int m= ;m& lishixinzhi/Article/program/Java/JSP/201311/19639


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13458621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-11
下一篇 2023-08-11

发表评论

登录后才能评论

评论列表(0条)

保存