SMTP:用来收发邮件 端口25
POP3用来接收邮件 端口110
IMAP: 收发邮件都可
发送邮件分类:
1. 发送纯文本邮件
2.发送html格式
3.发送有附件的邮件
1.发送纯文本邮件步骤:
a.创建session对象(用来连接邮件服务器)
b.创建邮件的消息(MimemeMessage)、收件人、发件人.......
c.创建邮件发送对象(Transport)连接到服务器,发送邮件
代码实例:
得到
//1. 创建session对象(用来连接到邮件服务器)
Properties props = new Properties();
//设置属性值
props.put("mail.smtp.auth", "true");//必须验证用户的用户名和密码
Session session = Session.getInstance(props);
//session.setDebug(true);
try {
Store store = session.getStore("pop3");
//先连接
store.connect("localhost", "test", "j7student");// 连接地址 用户名 密码
//store.connect("pop3.163.com", "test", "j7student"); //连接到腾讯邮箱p op3.qq.com
Folder fd = store.getFolder("INBOX");//得到邮箱
fd.open(Folder.READ_ONLY);//只读
Message ms[] = fd.getMessages();//得到所有邮件
for(Message m : ms)
{
System.out.println(m.getSubject()+":"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(m.getSentDate()));
if(m.getContent() instanceof MimeMultipart)//判读邮件的类型是否是复杂的
{
MimeMultipart mp = (MimeMultipart)m.getContent();
for(int i=0;i<mp.getCount();i++)
{
if(mp.getBodyPart(i).getContent() instanceof String)
{
System.out.println("带有附件的内容:"+mp.getBodyPart(i).getContent());
}
}
}
else{
System.out.println("普通内容"+m.getContent());
}
System.out.println("\n\n\n");
}
fd.close(false);
store.close();
} catch (Exception e) {
e.printStackTrace();
}
* 发送纯文本的邮件
*
* 步骤:
*
* 1. 创建session对象(用来连接到邮件服务器)
*
* 2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
*
* 3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))
//1. 创建session对象(用来连接到邮件服务器)
Properties props = new Properties();
//设置属性值
props.put("mail.smtp.auth", "true");//必须验证用户的用户名和密码
Session session = Session.getInstance(props);
session.setDebug(true);
//2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
MimeMessage msg = new MimeMessage(session);
try {
msg.setFrom(new InternetAddress("[email protected]"));//发件人
msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));//普通,抄送,秘密抄送
msg.setSubject("我的第一封邮件哦!");//主题
msg.setText("哈哈,我时邮件的内容哦!");//设置内容
msg.setSentDate(new Date());//发送时间
//3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))
Transport tran = session.getTransport("smtp");
tran.connect("localhost", "admin", "zuxiateacher");//先连接
//tran.connect("smtp.qq.com", "admin", "zuxiateacher");//先连接
//tran.connect("smtp.163.com", "admin", "zuxiateacher");//先连接
tran.sendMessage(msg, msg.getAllRecipients());//发送邮件(邮件的内容,邮件中的收件人)
tran.close();
System.out.println("邮件发送成功!");
} catch (Exception e) {
e.printStackTrace();
}
发送HTML步骤:
1. 创建session对象(用来连接到邮件服务器)
2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))
代码实例:
//1. 创建session对象(用来连接到邮件服务器)
Properties props = new Properties();
//设置属性值
props.put("mail.smtp.auth", "true");//必须验证用户的用户名和密码
Session session = Session.getInstance(props);
session.setDebug(true);
//2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
MimeMessage msg = new MimeMessage(session);
try {
msg.setFrom(new InternetAddress("[email protected]"));//发件人
msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));//普通,抄送,秘密抄送TO 等....
msg.setSubject("HTML标签邮件(3)!");//主题
msg.setContent("<font color='red'><a href='http://www.baidu.com'>哈哈,我时邮件的内容哦!</a></font>", "text/html;charset=GBK");//设置内容
msg.setSentDate(new Date());//发送时间
//3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))
Transport tran = session.getTransport("smtp");
tran.connect("localhost", "admin", "zuxiateacher");//先连接
//tran.connect("smtp.qq.com", "admin", "zuxiateacher");//先连接
//tran.connect("smtp.163.com", "admin", "zuxiateacher");//先连接
tran.sendMessage(msg, msg.getAllRecipients());//发送邮件(邮件的内容,邮件中的收件人)
tran.close();
System.out.println("邮件发送成功!");
} catch (Exception e) {
e.printStackTrace();
}
* 发送带有附件的邮件
*
* 步骤:
*
* 1. 创建session对象(用来连接到邮件服务器)
*
* 2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
*
* 3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))
代码实例://1. 创建session对象(用来连接到邮件服务器)
Properties props = new Properties();
//设置属性值
props.put("mail.smtp.auth", "true");//必须验证用户的用户名和密码
Session session = Session.getInstance(props);
session.setDebug(true);
//2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
MimeMessage msg = new MimeMessage(session);
try {
msg.setFrom(new InternetAddress("[email protected]"));//发件人
msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));//普通,抄送,秘密抄送
msg.setSubject("带有附件的邮件!");//主题
msg.setSentDate(new Date());//发送时间
//创建多组件对象
Multipart mp= new MimeMultipart();
//设置文本内容
//创建一个BodyPart
BodyPart mbp = new MimeBodyPart();
mbp.setContent("用来发送附件的哦!", "text/html;charset=utf-8");
mp.addBodyPart(mbp);
//附件处理
BodyPart mbp1 = new MimeBodyPart();
FileDataSource fds = new FileDataSource(new File("e:/图片.rar"));//快速读取文件
mbp1.setDataHandler(new DataHandler(fds));//设置数据的指针位置
//设置附件名称(下载时候的附件名)
mbp1.setFileName(MimeUtility.encodeText("图片.rar", "utf-8", null));
mp.addBodyPart(mbp1);
//将MiniMultipart设置为邮件内容
msg.setContent(mp);//注意:一定要把多组件,添加在Message消息中;
//3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))
Transport tran = session.getTransport("smtp");
tran.connect("localhost", "admin", "zuxiateacher");//先连接
//tran.connect("smtp.qq.com", "admin", "zuxiateacher");//先连接
//tran.connect("smtp.163.com", "admin", "zuxiateacher");//先连接
tran.sendMessage(msg, msg.getAllRecipients());//发送邮件(邮件的内容,邮件中的收件人)
tran.close();
System.out.println("邮件发送成功!");
} catch (Exception e) {
e.printStackTrace();
}