1新建Java項(xiàng)目
10年積累的網(wǎng)站建設(shè)、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有東蘭免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
2然后再項(xiàng)目下新建一個(gè)lib文件夾,復(fù)制需要的那個(gè)兩個(gè)jar包到lib下
3選擇 activation.jar和mail.jar,右鍵添加Build path
4用QQ給QQ發(fā)送郵件,發(fā)送方得開(kāi)啟第三方登錄,也就是授權(quán)登錄,需要開(kāi)始POP3和SMTP,還有點(diǎn)擊生成授權(quán)碼,下面是操作截圖
5編寫(xiě)Java代碼
6運(yùn)行,最后顯示 250 Mail OK即發(fā)送成功
7接收方的QQ會(huì)收到郵件
可以選擇使用log4j,它是一款開(kāi)源的日志記錄工具,提供發(fā)送日志郵件功能
Log4j發(fā)送日志郵件的作用:
項(xiàng)目錯(cuò)誤信息能及時(shí)(實(shí)時(shí))反映給項(xiàng)目維護(hù)人員以及相關(guān)負(fù)責(zé)人。
優(yōu)點(diǎn):
1.快速響應(yīng);
2.共同監(jiān)督;
3.郵件正文直接顯示了錯(cuò)誤信息,拷貝信息比登陸服務(wù)器再查找要方便;
4.在日志信息繼續(xù)寫(xiě)入文件的前提下,多了另外一種獲取信息的渠道。
補(bǔ)充:Log4j可以實(shí)現(xiàn)輸出到控制臺(tái),文件,回滾文件,發(fā)送日志郵件,數(shù)據(jù)庫(kù),自定義標(biāo)簽。
發(fā)送郵件的一個(gè)重要的類(lèi)是SMTPAppender,之前用的是 log4j-1.2.8,在1.2.8的版本中,SMTPAppender沒(méi)有SMTPPassword 和SMTPUsername 屬性。這兩個(gè)屬性分別是登錄SMTP服務(wù)器發(fā)送認(rèn)證的用戶名和密碼。
依賴(lài)的jar包:
log4j-1.2.15.jar(版本低于log4j-1.2.14.jar不支持SMTP認(rèn)證)
mail.jar
activation.jar
在log4j.properties文件中配置:
### send error through email.
#log4j的郵件發(fā)送appender,如果有必要你可以寫(xiě)自己的appender
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
#發(fā)送郵件的門(mén)檻,僅當(dāng)?shù)扔诨蚋哂贓RROR(比如FATAL)時(shí),郵件才被發(fā)送
log4j.appender.MAIL.Threshold=ERROR
#緩存文件大小,日志達(dá)到10k時(shí)發(fā)送Email
log4j.appender.MAIL.BufferSize=10
#發(fā)送郵件的郵箱帳號(hào)
log4j.appender.MAIL.From=xxx@163.com
#SMTP郵件發(fā)送服務(wù)器地址
log4j.appender.MAIL.SMTPHost=smtp.163.com
#SMTP發(fā)送認(rèn)證的帳號(hào)名
log4j.appender.MAIL.SMTPUsername=xxx@163.com
#SMTP發(fā)送認(rèn)證帳號(hào)的密碼
log4j.appender.MAIL.SMTPPassword=xxx
#是否打印調(diào)試信息,如果選true,則會(huì)輸出和SMTP之間的握手等詳細(xì)信息
log4j.appender.MAIL.SMTPDebug=false
#郵件主題
log4j.appender.MAIL.Subject=Log4JErrorMessage
#發(fā)送到什么郵箱,如果要發(fā)送給多個(gè)郵箱,則用逗號(hào)分隔;
#如果需要發(fā)副本給某人,則加入下列行
#log4j.appender.MAIL.Bcc=xxx@xxx.xxx
log4j.appender.MAIL.To=xxx@xxx.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[framework]%d - %c -%-4r[%t]%-5p %c %x -%m%n
在java代碼中,可是用logger.info("message");方法將message代表的消息發(fā)送到指定郵箱中
代碼如下:
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class EmailTest {
public static void main(String[] args) throws Exception{
Properties props = new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.163.com");
Session session = Session.getInstance(props,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication("xxx","xxx");//這里分別填寫(xiě)發(fā)送email的用戶名、密碼
}
}
);
session.setDebug(true);
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("xxx"));//這里是發(fā)送方的email地址如:xxx@163.com
msg.setSubject("test javamail");
msg.setRecipients(RecipientType.TO,
InternetAddress.parse("xxx"));//這里是接收方的email地址如:xxx@163.com
msg.setContent("a href=\"\"谷歌/a","text/html;charset=gb2312");
Transport.send(msg);
}
}
要兩個(gè)java文件 還有一個(gè)mail.jar是不是只能用javamail誰(shuí)也不敢說(shuō)
第一個(gè):
public class Constant {
public static final String mailAddress ="用戶名@163.com";
public static final String mailCount ="用戶名";
public static final String mailPassword ="密碼";
public static final String mailServer ="smtp.163.com";
//pukeyouxintest,
}
第二個(gè):
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMail {
/**
* 發(fā)送簡(jiǎn)單郵件
* @param str_from:發(fā)件人地址
* @param str_to:收件人地址
* @param str_title:郵件標(biāo)題
* @param str_content:郵件正文
*/
public static void send(String str_from,String str_to,String str_title,String str_content) {
// str_content="a href=''html元素/a"; //for testing send html mail!
try {
//建立郵件會(huì)話
Properties props=new Properties(); //用來(lái)在一個(gè)文件中存儲(chǔ)鍵-值對(duì)的,其中鍵和值是用等號(hào)分隔的,
//存儲(chǔ)發(fā)送郵件服務(wù)器的信息
props.put("mail.smtp.host",Constant.mailServer);
//同時(shí)通過(guò)驗(yàn)證
props.put("mail.smtp.auth","true");
//根據(jù)屬性新建一個(gè)郵件會(huì)話
Session s=Session.getInstance(props);
s.setDebug(true); //有他會(huì)打印一些調(diào)試信息。
//由郵件會(huì)話新建一個(gè)消息對(duì)象
MimeMessage message=new MimeMessage(s);
//設(shè)置郵件
InternetAddress from= new InternetAddress(str_from); //pukeyouxintest2@163.com
message.setFrom(from); //設(shè)置發(fā)件人的地址
//
// //設(shè)置收件人,并設(shè)置其接收類(lèi)型為T(mén)O
InternetAddress to=new InternetAddress(str_to); //pukeyouxintest3@163.com
message.setRecipient(Message.RecipientType.TO, to);
//設(shè)置標(biāo)題
message.setSubject(str_title); //java學(xué)習(xí)
//設(shè)置信件內(nèi)容
// message.setText(str_content); //發(fā)送文本郵件 //你好嗎?
message.setContent(str_content, "text/html;charset=gbk"); //發(fā)送HTML郵件 //b你好/bbrp大家好/p
//設(shè)置發(fā)信時(shí)間
message.setSentDate(new Date());
//存儲(chǔ)郵件信息
message.saveChanges();
//發(fā)送郵件
Transport transport=s.getTransport("smtp");
//以smtp方式登錄郵箱,第一個(gè)參數(shù)是發(fā)送郵件用的郵件服務(wù)器SMTP地址,第二個(gè)參數(shù)為用戶名,第三個(gè)參數(shù)為密碼
transport.connect(Constant.mailServer,Constant.mailCount,Constant.mailPassword);
//發(fā)送郵件,其中第二個(gè)參數(shù)是所有已設(shè)好的收件人地址
transport.sendMessage(message,message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
//測(cè)試用的,你吧你想寫(xiě)的內(nèi)容寫(xiě)上去就行
send(Constant.mailAddress,"收件人郵箱","標(biāo)題","b內(nèi)容/b");
}
}
然后把mail.jar導(dǎo)入,就可以了,我用的是163 的,其他的吧相應(yīng)的服務(wù)器改一下就行了
本文標(biāo)題:java代碼怎么發(fā)郵箱 java實(shí)現(xiàn)郵件發(fā)送
分享路徑:http://chinadenli.net/article30/dodcspo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)、品牌網(wǎng)站制作、企業(yè)網(wǎng)站制作、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)