javamail 发送邮件

来源:互联网 发布:java怎么固定gui位置 编辑:程序博客网 时间:2024/04/19 12:16

Javamail 学习过程

一、邮件发送

1、在javamail的环境下创建一个 Properties 对象,该类在 java.util 包中,以键-值对的形式设置邮件接收中需要用到的传输协议,如 stmp协议,此外还可以设置想要连接的 stmp 服务器的主机名;  

如:

其中serverUrl 表示传过来的邮箱的后缀名。

2、创建session对象   如上图所示

这里的session不是javaEE中的session 而是javax.mail.Session,他不能直接new一个对象而是通过Session.getInstance(props);

3、创建session对象以后就要通过session获取发送邮件对象以及连接服务器:

上面的几个参数一看就明了吧   第一个表示服务器名,第二个表示发件人的邮箱,第三个表示发件人邮箱的密码

4、接下来就是创建邮件:

MimeMessage message = new MimeMessage(session);

5、设置发件人和收件人:

message.setForm(new InternetAddress(sendUserEmail));//设置发件人

message.serRecipients(Message.RecipientType.TO, takeUserEmail);//设置收件

6、在上面的前提下我们可以设置邮件的主题以及内容了   先设置主题,内容里面有点复杂,其中里面包括文本内容(可以包含纯文本内容和图片)、图片、附件

先设置主题:

message.setSubject(subject);

创建正文:

先是纯文本内容:

MimeBodyPart text = new MimeBodyPart();

text.setContent(emailContent,"text/html;charset=UTF-8");

图片:

MimeBodyPart image = new MimeBodyPart();

DataHandler dh = new DataHandler(new FIleDataSource(imgUrl));

image.setDataHandler(dh);

image.setContentId(“aaa”);

附件:

MimeBodyPart attachment = new MimeBodyPart();

DataHandler dh1 = new DataHandler(new FIleDataSource(imgUrl));

attachment.setDataHandler(dh1);

attachment.setFileName(MimeUtility.encodeText(dh1.getName()));//特殊注意的地方  得自己设置名字 不然会随机分配的

7、接下来就是整合图片、附件跟正文内容是什么关系咯:

就以图片可以作为正文内的内容为例:

MimeMultipart mm1 = new MimeMultipart();

mm1.addBoduPart(text);

mm1.addBodyPart(image);

mm1.setSybType(related);

这就是他们之间的关系

附件就不用说了咯:请看下面

MimeBodyPart content =  new MimeBodyPart();

content.setContent(mm1);//记得这是文本+图片的合体

MimeMultipart mm = new MimeMultipart();

mm.addBodyPart(content);

mm.addBodyPart(attachment);

mm.addBodyPart(mixed);//记住他们之间的关系

message.setContent(mm);

这就一份邮件设置好了,哦  不过好像忘了一点还有日期没设置

message.setSentDate(new Date());

最后保存邮件:message.saveChanges();

这是第几步了 应该是倒数第二步 发送邮件:

ts.sendMessage(message,message.getAllRecipients());

ts.close();//最后一步记得关闭邮件发送对象

源代码下载:http://download.csdn.net/detail/yuanfyly/5818251

原创粉丝点击