Java笔记——JavaMail发送邮件
|
1、JavaMail概述
Java Mail是由SUN公司提供的专门针对邮件的API,主要Jar包:mail.jar、activation.jar。 ============================= 2、JavaMail中主要类 * Session:表示会话,即客户端与邮件服务器之间的会话。想获得会话需要给出账户和密码,当然还要给出服务器名称。在邮件服务中的* Session对象,就相当于连接数据库时的Connection对象。 * MimeMessage:表示邮件类,它是Message的子类。它包含邮件的主题(标题)、内容,收件人地址、发件人地址,还可以设置抄送和暗送,甚至还可以设置附件。 * Transport:用来发送邮件。它是发送器。 ============================= 3 JavaMail之Hello World 在使用telnet发邮件时,还需要自己来处理Base64编码的问题,但使用JavaMail就不必理会这些问题了,都由JavaMail来处理。 >第一步:获得Session *其中prop需要指定两个键值,一个是指定服务器主机名,另一个是指定是否需要认证。 Properties prop= new Properties(); prop.setProperty(“mail.host”,“smtp.163.com”);//设置服务器主机名 prop.setProperty(“mail.smtp.auth”,“true”);//设置需要认证 *其中Authenticator是一个接口表示认证器,即校验客户端的身份。我们需要自己来实现这个接口,实现这个接口需要使用账户和密码。 Authenticatorauth = new Authenticator(){ public PasswordAuthenticationgetPasswordAuthentication () { new PasswordAuthentication(“pengweicong”,“123456”);//用户名和密码 } }; *通过上面的准备,现在可以获取得Session对象了: Session session= Session.getInstance(prop, auth); ------------------------ >第二步:创建MimeMessage对象 *创建MimeMessage需要使用Session对象来创建: MimeMessage msg= new MimeMessage(session); *然后需要设置发信人地址、收信人地址、主题,以及邮件正文。 msg.setFrom(newInternetAddress(“pengweicong@163.com”));//设置发信人 msg.addRecipients(RecipientType.TO,“pengweicong@qq.com,pengweicong@sina.com”);//设置多个收信人 msg.addRecipients(RecipientType.CC,“pengweicong@sohu.com,pengweicong@126.com”);//设置多个抄送 msg.addRecipients(RecipientType.BCC,”pengweicong@hotmail.com”);//设置暗送 msg.setSubject(“这是一封测试邮件”);//设置主题(标题) msg.setContent(“hello world!”, “text/plain;charset=utf-8”);//设置正文 ------------------------ >第三步:发送邮件 Transport.send(msg);//发送邮件 ============================= 4 JavaMail发送带有附件的邮件(了解) 一封邮件可以包含正文、附件N个,所以正文与N个附件都是邮件的一个部份。 上面的hello world案例中,只是发送了带有正文的邮件。所以在调用setContent()方法时直接设置了正文,如果想发送带有附件邮件,那么需要设置邮件的内容为MimeMultiPart。 MimeMulitpartparts = new MimeMulitpart();//多部件对象,可以理解为是部件的集合 msg.setContent(parts);//设置邮件的内容为多部件内容。 然后我们需要把正文、N个附件创建为“主体部件”对象(MimeBodyPart),添加到MimeMuiltPart中即可。 MimeBodyPartpart1 = new MimeBodyPart();//创建一个部件 part1.setCotnent(“这是正文部分”, “text/html;charset=utf-8”);//给部件设置内容 parts.addBodyPart(part1);//把部件添加到部件集中。 下面我们创建一个附件: MimeBodyPartpart2 = new MimeBodyPart();//创建一个部件 part2.attachFile(“D:\\pengweicong.jpeg”);//设置附件 part2.setFileName(“pengweicong.jpeg”);//设置附件名称 parts.addBodyPart(part2);//把附件添加到部件集中 注意,如果在设置文件名称时,文件名称中包含了中文的话,那么需要使用MimeUitlity类来给中文编码: part2.setFileName(MimeUitlity.encodeText(“彭伟聪.jpg”)); |
版权声明:本文为博主原创文章,未经博主允许不得转载。
Java笔记——JavaMail发送邮件的更多相关文章
- JavaMail发送邮件的笔记及Demo
最近碰到一个需求,就是注册用户时候需要向用户发送激活邮箱,于是照着网上搜来的demo自己试着运行了一下,发件时我用的是网易163邮箱,收件时用QQ邮箱,运行后报了一个错误: 网络上搜索解决方式,多次尝 ...
- JavaMail发送邮件
发送邮件包含的内容有: from字段 --用于指明发件人 to字段 --用于指明收件人 subject字段 --用于说明邮件主题 cc字段 -- 抄送,将邮件发送给收件人的同时抄 ...
- JavaMail发送邮件第一版
首先,我们先来了解一个基本的知识点,用什么工具来发邮件? 简单的说一下,目前用的比较多的客户端:OutLook,Foxmail等 顺便了解一下POP3.SMTP协议的区别: POP3,全名为" ...
- web应用中使用JavaMail发送邮件
现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...
- web应用中使用JavaMail发送邮件 。。转载
现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...
- (转载)JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件
博客源地址:http://www.cnblogs.com/xdp-gacl/p/4220190.html 现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件 ...
- java工作流软件发送邮件的方案
利用javamail的功能将发送邮件的功能集成到java工作流系统中.javamail包提供有发送邮件的方法,设置发送人地址,收件人地址,抄送,主题,邮件服务器地址,认证用户等信息,再调用javama ...
- JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件
现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...
- javamail发送邮件的简单实例
今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接 ...
随机推荐
- OpenGL学习笔记之配置OpenGL
OpenGL是计算机图形学领域的一门入门语言,OpenGL开发库的一些文件在官网上可以下载到.里面包含三个文件,如下: 1.把在OpenGL开发库中LIB(库文件)glut.lib和glut32.li ...
- 使用itunes同步ios时丢失照片恢复
因没有备份,在使用同步功能后,发现照片被清空了,找到恢复方法,分享之! from:http://modmyi.com/forums/native-iphone-ipod-touch-app-discu ...
- NSString+NSStringForJava.m
// // NSString+NSStringForJava.m // NSStringCategory // // Created by Ryan Tang on 12-10-17. // Copy ...
- 【Flatten Binary Tree to Linked List】cpp
题目: Given a binary tree, flatten it to a linked list in-place. For example,Given 1 / \ 2 5 / \ \ 3 4 ...
- OS X 使用技巧——不用鼠标就能打开应用程序
如果要打开的应用程序没有保留在Dock栏里,一种快速启动它的办法是按住Control+Space键后再输入应用程序的名称.按Control+Space键会开启聚光灯(Spotlight)搜索工具,它会 ...
- python 数据结构-列表
列表常用方法汇总: #定义列表li li=[12.23,456,88,9] a=[1,2,3] #添加元素到列表结尾 li.append(360) #追加列表元素extend(L) li.extend ...
- c++ swap 函数
转载地址 1,最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符. template <class T> void swap ( T& a, T& b ) { T ...
- 【BZOJ】【1049】【HAOI2006】数字序列
DP 第一问比较水……a[i]-=i 以后就变成最长不下降子序列问题了,第二问这个结论好神奇,考试的时候怎么破?大胆猜想,不用证明?TAT 题解:http://pan.baidu.com/share/ ...
- ToolStripButton样式
public static class Extensions { public static void SetMouseDownStyle(this ToolStripButton button) { ...
- UIFontFamily
Family: Hiragino Kaku Gothic ProN W3 Font: HiraKakuProN-W3 Family: Courier Font: Courier ...