- 浏览: 230048 次
- 性别:
- 来自: 我也来自火星?
文章分类
最新评论
-
chengUFO:
Test tes = c.newInstance();执行以上 ...
自定义ClassLoader -
lliiqiang:
资料太少了,伪造客户端和事先标准以外数据为攻击,其它的是bug ...
Openlaszlo调用JavaRPC和JAVA类通信 -
tianshaojie:
楼主,为什么我安装你的方法建立工程后,访问就出错,我用的是ta ...
Tapestry4入门 -
panshunchang:
发帖过程这么辛苦,还要回答一大堆问题,受不了了
[常用代码整理]JAVA反射 -
活靶子:
生成一个join的SQL语句
SELECT items.* F ...
Better looking URLs with friendly_id
几天来一直在开发一个项目,其中一部分需要用 JavaMail 收发邮件,于是就在网上找了一些相关的源代码,最后经过整理和修改,终于好使了,希望能够给使用 JavaMail 收发邮件的朋友提供一个参考 J
使用 JavaMail 收发邮件只需要下载两个开源的 jar 文件, mail.jar 和 activation.jar, 这两个 jar 包可以很容易的在网上找到,这里就不提供下载链接了。
下面是发送邮件SendMail.java(含附件)代码:
ReceiveMail.java代码如下:
使用 JavaMail 收发邮件只需要下载两个开源的 jar 文件, mail.jar 和 activation.jar, 这两个 jar 包可以很容易的在网上找到,这里就不提供下载链接了。
下面是发送邮件SendMail.java(含附件)代码:
//SendMail.java import javax.mail.*; import javax.mail.internet.*; import java.util.*; import javax.activation.*; public class SendMail ...{ public static void send(String customMailBoxAddress,String username,String password,String serverMailBoxAddress,String subject,String attachmentPath,String attachmentName) ...{ //这里面使用新浪作为发送邮件的邮件服务器,其他的smtp服务器可以到相关网站上查到。 String host = "smtp.sina.com.cn"; //发送方邮箱地址(如BlogJava2006@blog.com.cn.) String from = customMailBoxAddress; //收件人邮箱地址 String to = serverMailBoxAddress; //发送者的邮箱用户名 String user = username; //发送者的邮箱密码 String ps = password; Properties props = new Properties(); //设置发送邮件的邮件服务器的属性(这里使用新浪的smtp服务器) props.put("mail.smtp.host", host); //需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有//这一条) props.put("mail.smtp.auth", "true"); //用刚刚设置好的props对象构建一个session Session session = Session.getDefaultInstance(props); //有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使 //用(有的时候网络连通性不够好,发送邮件可能会有延迟,在这里面会有所//提示,所以最好是加上这句,避免盲目的等待) session.setDebug(true); //定义消息对象 MimeMessage message = new MimeMessage(session); try...{ message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject(subject); // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件 Multipart multipart = new MimeMultipart(); //设置邮件的文本内容 BodyPart contentPart = new MimeBodyPart(); contentPart.setText("邮件的具体内容在此"); multipart. addBodyPart(contentPart); //添加附件 BodyPart attachmentPart= new MimeBodyPart(); DataSource source = new FileDataSource(attachmentPath); attachmentPart.setDataHandler(new DataHandler(source)); //注意:下面定义的enc对象用来处理中文附件名,否则名称是中文的附//件在邮箱里面显示的会是乱码, sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder(); messageBodyPart.setFileName("=?GBK?B?"+enc.encode(attachmentName.getBytes())+"?="); multipart.addBodyPart(messageBodyPart); //将multipart对象放到message中 message.setContent(multipart); //发送邮件 message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect(host, username, password); transport.sendMessage(message, message.getAllRecipients()); transport.close(); }catch(Exception e)...{ e.printStackTrace(); } } }
ReceiveMail.java代码如下:
import javax.mail.*; import java.util.*; import java.io.*; public class ReceiveMail ...{ //处理任何一种邮件都需要的方法 private void handle(Message msg) throws Exception ...{ System.out.println("邮件主题:" + msg.getSubject()); System.out.println("邮件作者:" + msg.getFrom()[0].toString()); System.out.println("发送日期:" + msg.getSentDate()); } //处理文本邮件 private void handleText(Message msg) throws Exception ...{ this.handle(msg); System.out.println("邮件内容:"+msg.getContent()); } //处理Multipart邮件,包括了保存附件的功能 private static void handleMultipart(Message msg) throws Exception ...{ String disposition; BodyPart part; Multipart mp = (Multipart) msg.getContent(); //Miltipart的数量,用于除了多个part,比如多个附件 int mpCount = mp.getCount(); for (int m = 0; m < mpCount; m++) ...{ this.handle(msg); part = mp.getBodyPart(m); disposition = part.getDisposition(); //判断是否有附件 if (disposition != null && disposition.equals(Part.ATTACHMENT)) ...{ //这个方法负责保存附件 saveAttach(part); } else ...{ //不是附件,就只显示文本内容 System.out.println(part.getContent()); } } } private static void saveAttach(BodyPart part) throws Exception ...{ //得到未经处理的附件名字 String temp = part.getFileName(); //除去发送邮件时,对中文附件名编码的头和尾,得到正确的附件名 //(请参考发送邮件程序SendMail的附件名编码部分) String s = temp.substring(8, temp.indexOf("?=")); //文件名经过了base64编码,下面是解码 String fileName = base64Decoder(s); System.out.println("有附件:" + fileName); InputStream in = part.getInputStream(); FileOutputStream writer = new FileOutputStream(new File( "保存附件的本地路径"+ "\"+fileName)); byte[] content = new byte[255]; int read = 0; while ((read = in.read(content)) != -1) ...{ writer.write(content); } writer.close(); in.close(); } //base64解码 private static String base64Decoder(String s) throws Exception ...{ sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); byte[] b = decoder.decodeBuffer(s); return (new String(b)); } public static void receive(String receiverMailBoxAddress, String username,String password) ...{ //本人用的是yahoo邮箱,故接受邮件使用yahoo的pop3邮件服务器 String host = "pop.mail.yahoo.com.cn"; try ...{ //连接到邮件服务器并获得邮件 Properties prop = new Properties(); prop.put("mail.pop3.host", host); Session session = Session.getDefaultInstance(prop); Store store = session.getStore("pop3"); store.connect(host, username, password); Folder inbox = store.getDefaultFolder().getFolder("INBOX"); //设置inbox对象属性为可读写,这样可以控制在读完邮件后直接删除该附件 inbox.open(Folder.READ_WRITE); Message[] msg = inbox.getMessages(); FetchProfile profile = new FetchProfile(); profile.add(FetchProfile.Item.ENVELOPE); inbox.fetch(msg, profile); for (int i = 0; i < msg.length; i++) ...{ //标记此邮件的flag标志对象的DELETED位为true,可以在读完邮件后直接删除该附件,具体执行时间是在调用 //inbox.close()方法的时候 msg[i].setFlag(Flags.Flag.DELETED, true); handleMultipart(msg[i]); System.out.println("****************************"); } if (inbox != null) ...{ //参数为true表明阅读完此邮件后将其删除,更多的属性请参考mail.jar的API inbox.close(true); } if (store != null) ...{ store.close(); } } catch (Exception e) ...{ e.printStackTrace(); } } }
发表评论
-
vim补全
2009-10-13 16:42 0引用VIM自动不齐不需要特殊配置,只需要打开 filetype ... -
一次小项目的思考
2009-08-20 23:11 3305最近的一个项目,四个 ... -
IntelliJ Idea插件Jetty Integration恢复开发
2009-08-19 14:34 3527今天在je上面看到了一条新闻 Google 选择 Jetty, ... -
PowerDesigner 中将Comment(注释)及Name(名称)内容互相COPY的VBS代码
2009-07-30 14:05 2214在用PowerDesigner时.常常在NAME或Commen ... -
使用VisualSVN Server构建自己的版本库
2008-12-16 16:13 1676VisualSVN Server是用于Subversion管理 ... -
在laszlo方法中使用参数
2006-03-22 14:56 923<canvas debug="true&quo ... -
openlasz入门---openlaszlo环境的建立
2006-04-11 22:09 1653关于openlaszlo的介绍网站上面也蛮多了,所以,在这里也 ... -
Openlaszlo调用JavaRPC和JAVA类通信
2006-04-20 10:31 1795JavaRPC允许Laszlo客户端远程调用服务端的JAVA类 ... -
FCKEditor使用说明
2007-02-17 13:53 14561. FCKeditor 介绍 FCKeditor 这个开源的 ... -
一个不错的开源数据库H2
2007-02-17 14:10 1472H2是一个采用Java开发开源的嵌入式SQL数据库。它支持集群 ... -
JAVA获取系统当前的用户
2007-03-02 17:15 6654public class Test { ... -
FCKeditor插件开发
2007-03-23 21:45 2920FCKeditor插件开发建立 ... -
Idea8试用
2008-03-23 21:56 1608刚刚在新闻频道看到关于Idea的新闻,对它的javascrip ... -
HtmlUnit测试页面
2008-03-02 22:29 9833HtmlUnit简介:引自 www.open-open.com ... -
java的数据结构
2007-11-11 19:04 1460线性表,链表,哈希表是常用的数据结构,在进行Java开发时,J ... -
P6SPY监控数据库性能
2007-11-11 18:51 2874P6SPY监控数据库性能 P6SPY通过对JDBC API的 ... -
Idea7.0注册机
2007-10-20 22:55 3188Idea7.0注册机 -
[转]普元JS验证
2007-09-16 22:25 1643* -------------------------- ... -
Apache和Subversion搭建版本控制环境
2007-08-03 23:40 14921. 安装Apache2.0.59(Apache 2.2.4和 ... -
IDEA的RUBY插件试用
2007-07-31 22:21 3822经过http://www.intellij.org.cn站长的 ...
相关推荐
javamail收发邮件(带附件,正文带图).doc
javamail收发邮件(带附件,正文带图).docx
javamail收发邮件类库 同时发送多个人带附件
javamail smtp imap收发电子邮件,发送附件,联系人管理!
本人最新写了一个邮件收发的例子,可以处理中文的 包括发送附件,附件标题也可以是中文的,可以给大 家参考下!希望能给大家一些帮助!
NULL 博文链接:https://aa00aa00.iteye.com/blog/794141
(3) 邮件附件的发送与接受; (4) 删除邮件; 具体操作步骤如下: 1、打开javamailsystem文件夹,找到javamail.jar可执行文件,双击该执行文件,即可打开Javamail邮件收发系统客户端软件。进入该系统后,首先选择...
这个程序在发送邮件是可以指定多个附件发送,多个发送人,收取邮件是可以收取邮件的附件
利用javaMail发送和接受电子邮件 包括普通电子邮件的收发,带附件的电子邮件的收发
基于JavaMail的邮件收发系统是一种用于发送和接收电子邮件的应用程序,它基于JavaMail API来实现与邮件服务器的通信,并提供用户界面来进行邮件的管理和操作。以下是对该系统实现的描述: 用户界面: 系统提供了...
javamail开发,带图形界面,邮件的发送,接收,带附件,html,邮件解析
(3) 邮件附件的发送与接受; (4) 删除邮件; 具体操作步骤如下: 1、打开javamailsystem文件夹,找到javamail.jar可执行文件,双击该执行文件,即可打开Javamail邮件收发系统客户端软件。进入该系统后,首先选择...
程序会根据配置的文件自动发送邮件,可包含任意数量的附件,每个附件目录及文件名在配置文件中配置。 2.ReceiveOneMail 从网上down下来的接收邮件类,可自动把收件箱中的附件下载到本地磁盘上。 另外两个类是工具...
基于Javamail的邮件收发系统是一款简单、方便、快捷的邮件系统。它能实现邮件的接收与发送,并能完成附件的传输,具有较好的人机交互性,易于使用。 开发环境:JDK1.6 + ...(3) 邮件附件的发送与接受; (4) 删除邮件
(3) 邮件附件的发送与接受; (4) 删除邮件; 具体操作步骤如下: 1、 打开javamailsystem文件夹,找到javamail.jar可执行文件,双击该执行文件,即可打开Javamail邮件收发系统客户端软件。进入该系统后,首先选择...
(3) 邮件附件的发送与接受; (4) 删除邮件; 具体操作步骤如下: 1、 打开javamailsystem文件夹,找到javamail.jar可执行文件,双击该执行文件,即可打开Javamail邮件收发系统客户端软件。进入该系统后,首先选择...
这个压缩文件包(.rar)包含了一套完整的基于Javamail的邮件收发系统,是针对大学生毕业设计、课程设计等项目的完整解决方案。该邮件系统不仅提供了基础的电子邮件发送和接收功能,还可能包括了用户管理、邮件存储、...
JAVA实战项目源码-计算机毕业设计java专业-项目源码-项目说明介绍-基于Javamail的邮件收发系统 基于Javamail的邮件收发系统是一款...它能实现邮件的接收与发送,并能完成附件的传输,具有较好的人机交互性,易于使用。
java收发邮件的客户端 可以收发邮件和附件
本项目是一个基于安卓的完整邮件客户端客户端项目源码,使用javamail框架,使用pop3和stmp协议收发邮件,支持多附件收发和可选自动登录, 邮件内容解析支持多种编码,html内容自动用webview显示。项目压缩包说明里面...