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();
}