JavaMail實(shí)現(xiàn)郵件發(fā)送的方法
本文實(shí)例講述了JavaMail實(shí)現(xiàn)郵件發(fā)送的方法。分享給大家供大家參考。具體如下:
下載 activation.jar 和 mail.jar
配置CLASSPATH,將上面兩個(gè)jar包加入到CLASSPATH中。
JavaBean : "SendEmail.java"
package cls;
import java.util.Date;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class SendEmail
{
String host;
String username;
String password;
String fromAddr;
String toAddr;
String subject;
String content;
public SendEmail()
{
// 變量初始化
host = "smtp.qq.com";
username = "";
password = "";
fromAddr = "@";
}
// 發(fā)送郵件
public boolean sendMail()
{
Properties prop;
Session session;
MimeMessage msg;
try
{
prop = new Properties(); // 存儲(chǔ)連接參數(shù)
prop.put("mail.smtp.host",host);
prop.put("mail.smtp.auth","true");
session = Session.getDefaultInstance(prop,null);
// 獲得一個(gè)郵件的Session
msg = new MimeMessage(session); // 郵件信息
// 檢查郵件地址是否合法
if(fromAddr == null || fromAddr.equals(""))
{
throw new Exception("發(fā)件地址錯(cuò)誤");
}
if(toAddr == null || toAddr.equals(""))
{
throw new Exception("目標(biāo)地址錯(cuò)誤");
}
//設(shè)置源地址
msg.setFrom(new InternetAddress(fromAddr));
//設(shè)置目的地址
msg.setRecipient(Message.RecipientType.TO,new InternetAddress(toAddr));
//設(shè)置主題
msg.setSubject(subject);
Multipart mp = new MimeMultipart(); //郵件內(nèi)容
MimeBodyPart mbpContent = new MimeBodyPart();
mbpContent.setContent(content,"text/html"); // 郵件格式
mp.addBodyPart(mbpContent);
msg.setContent(mp);
msg.setSentDate(new Date());
// 發(fā)送郵件
Transport transport = session.getTransport("smtp");
transport.connect((String)prop.get("mail.smtp.host"),username,password);
transport.sendMessage(msg,msg.getRecipients(MimeMessage.RecipientType.TO));
transport.close();
return true;
}
catch(Exception e)
{
System.out.println(e);
return false;
}
}
// getter and setter
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getHost()
{
return host;
}
public void setHost(String host)
{
this.host = host;
}
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getFromAddr()
{
return this.fromAddr;
}
public void setFromAddr(String addr)
{
fromAddr = addr;
}
public String getToAddr()
{
return this.toAddr;
}
public void setToAddr(String addr)
{
toAddr = addr;
}
public String getSubject()
{
return subject;
}
public void setSubject(String sub)
{
subject = sub;
}
public String getContent()
{
return content;
}
public void setContent(String content)
{
this.content = content;
}
}
sendmail.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Mail</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <center> <jsp:useBean id="email" class="cls.SendEmail" scope="page" /> <jsp:setProperty name="email" property="toAddr" value="host" /> <jsp:setProperty name="email" property="fromAddr" value="host" /> <jsp:setProperty name="email" property="username" value="username" /> <jsp:setProperty name="email" property="password" value="password" /> <jsp:setProperty name="email" property="subject" value="mail test" /> <jsp:setProperty name="email" property="content" value="hello world"/> <%=email.sendMail() %> </center> </body> </html>
希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。
- JavaMail實(shí)現(xiàn)郵件發(fā)送機(jī)制
- JavaMail整合Spring實(shí)現(xiàn)郵件發(fā)送功能
- JavaMail實(shí)現(xiàn)簡(jiǎn)單郵件發(fā)送
- 基于JavaMail實(shí)現(xiàn)簡(jiǎn)單郵件發(fā)送
- 基于JavaMail的Java郵件發(fā)送
- JavaMail郵件發(fā)送機(jī)制詳解
- 基于JavaMail實(shí)現(xiàn)郵件發(fā)送
- 基于JavaMail的Java實(shí)現(xiàn)復(fù)雜郵件發(fā)送功能
- 基于JavaMail的Java實(shí)現(xiàn)簡(jiǎn)單郵件發(fā)送功能
- JavaMail實(shí)現(xiàn)帶附件的郵件發(fā)送
相關(guān)文章
java判斷中文字符串長(zhǎng)度的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇java判斷中文字符串長(zhǎng)度的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
Java操作redis設(shè)置第二天凌晨過(guò)期的解決方案
這篇文章主要介紹了Java操作redis設(shè)置第二天凌晨過(guò)期的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
如何獲取springboot打成jar后的classpath
這篇文章主要介紹了如何獲取springboot打成jar后的classpath問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
詳解JAVA高質(zhì)量代碼之?dāng)?shù)組與集合
在學(xué)習(xí)編程的過(guò)程中,我覺(jué)得不止要獲得課本的知識(shí),更多的是通過(guò)學(xué)習(xí)技術(shù)知識(shí)提高解決問(wèn)題的能力,這樣我們才能走在最前方,本文主要講述Java高質(zhì)量代碼之?dāng)?shù)組與集合2013-08-08
在SpringBoot中實(shí)現(xiàn)線程池并行處理任務(wù)的方法詳解
在使用Spring Boot開(kāi)發(fā)應(yīng)用程序時(shí),我們經(jīng)常需要處理一些耗時(shí)的任務(wù),例如網(wǎng)絡(luò)請(qǐng)求、數(shù)據(jù)庫(kù)操作或者其他需要花費(fèi)一定時(shí)間的計(jì)算任務(wù),本文將介紹如何在Spring Boot中使用線程池來(lái)實(shí)現(xiàn)任務(wù)的并行處理2023-06-06

