JAVA郵件發送的大致過程是這樣的的:
成都創新互聯公司是由多位在大型網絡公司、廣告設計公司的優秀設計人員和策劃人員組成的一個具有豐富經驗的團隊,其中包括網站策劃、網頁美工、網站程序員、網頁設計師、平面廣告設計師、網絡營銷人員及形象策劃。承接:網站設計、成都做網站、網站改版、網頁設計制作、網站建設與維護、網絡推廣、數據庫開發,以高性價比制作企業網站、行業門戶平臺等全方位的服務。
1、構建一個繼承自javax.mail.Authenticator的具體類,并重寫里面的getPasswordAuthentication()方法。此類是用作登錄校驗的,以確保你對該郵箱有發送郵件的權利。
2、構建一個properties文件,該文件中存放SMTP服務器地址等參數。
3、通過構建的properties文件和javax.mail.Authenticator具體類來創建一個javax.mail.Session。Session的創建,就相當于登錄郵箱一樣。剩下的自然就是新建郵件。
4、構建郵件內容,一般是javax.mail.internet.MimeMessage對象,并指定發送人,收信人,主題,內容等等。
5、使用javax.mail.Transport工具類發送郵件。
要實現郵件發送功能需要導入包:mail.jar
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package org.demo.action;
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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.demo.form.DemoForm;
public class DemoAction extends Action {
private static final String CONTENT_TYPE = "test/html;charset=GB2312";
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DemoForm demoForm = (DemoForm) form;
System.out.println("標題是" + demoForm.getBiaoti());
System.out.println("內容是" + demoForm.getNeirong());
try {
response.setContentType(CONTENT_TYPE);
String smtphost = "smtp.nj.headware.cn"; // 發送郵件服務器
String user = "q0000015369"; // 郵件服務器登錄用戶名
String password = "Queshuwen26"; // 郵件服務器登錄密碼
String from = "q0000015369@nj.headware.cn"; //
String to = "c0000016205@nj.headware.cn"; // 收件人郵件地址
String subject = demoForm.getBiaoti(); // 郵件標題
String body = demoForm.getNeirong(); // 郵件內容
Properties props = new Properties();
props.put("mail.smtp.host", smtphost);
props.put("mail.smtp.auth", "true");
Session ssn = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(ssn);
InternetAddress fromAddress = new InternetAddress(from);
message.setFrom(fromAddress);
InternetAddress toAddress = new InternetAddress(to);
message.addRecipient(Message.RecipientType.TO, toAddress);
message.setSubject(subject);
message.setText(body);
Transport transport = ssn.getTransport("smtp");
transport.connect(smtphost, user, password);
transport.sendMessage(message, message
.getRecipients(Message.RecipientType.TO));
// transport.send(message);
transport.close();
return mapping.findForward("succ");
} catch (Exception e) {
e.printStackTrace();
return mapping.findForward("fail");
}
}
}
public boolean mainto()
{
boolean flag = true;
//建立郵件會話
Properties pro = new Properties();
pro.put("mail.smtp.host","smtp.qq.com");//存儲發送郵件的服務器
pro.put("mail.smtp.auth","true"); //通過服務器驗證
Session s =Session.getInstance(pro); //根據屬性新建一個郵件會話
//s.setDebug(true);
//由郵件會話新建一個消息對象
MimeMessage message = new MimeMessage(s);
//設置郵件
InternetAddress fromAddr = null;
InternetAddress toAddr = null;
try
{
fromAddr = new InternetAddress(451144426+"@qq.com"); //郵件發送地址
message.setFrom(fromAddr); //設置發送地址
toAddr = new InternetAddress("12345367@qq.com"); //郵件接收地址
message.setRecipient(Message.RecipientType.TO, toAddr); //設置接收地址
message.setSubject(title); //設置郵件標題
message.setText(content); //設置郵件正文
message.setSentDate(new Date()); //設置郵件日期
message.saveChanges(); //保存郵件更改信息
Transport transport = s.getTransport("smtp");
transport.connect("smtp.qq.com", "451144426", "密碼"); //服務器地址,郵箱賬號,郵箱密碼
transport.sendMessage(message, message.getAllRecipients()); //發送郵件
transport.close();//關閉
}
catch (Exception e)
{
e.printStackTrace();
flag = false;//發送失敗
}
return flag;
}
這是一個javaMail的郵件發送代碼,需要一個mail.jar
可以選擇使用log4j,它是一款開源的日志記錄工具,提供發送日志郵件功能
Log4j發送日志郵件的作用:
項目錯誤信息能及時(實時)反映給項目維護人員以及相關負責人。
優點:
1.快速響應;
2.共同監督;
3.郵件正文直接顯示了錯誤信息,拷貝信息比登陸服務器再查找要方便;
4.在日志信息繼續寫入文件的前提下,多了另外一種獲取信息的渠道。
補充:Log4j可以實現輸出到控制臺,文件,回滾文件,發送日志郵件,數據庫,自定義標簽。
發送郵件的一個重要的類是SMTPAppender,之前用的是 log4j-1.2.8,在1.2.8的版本中,SMTPAppender沒有SMTPPassword 和SMTPUsername 屬性。這兩個屬性分別是登錄SMTP服務器發送認證的用戶名和密碼。
依賴的jar包:
log4j-1.2.15.jar(版本低于log4j-1.2.14.jar不支持SMTP認證)
mail.jar
activation.jar
在log4j.properties文件中配置:
### send error through email.
#log4j的郵件發送appender,如果有必要你可以寫自己的appender
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
#發送郵件的門檻,僅當等于或高于ERROR(比如FATAL)時,郵件才被發送
log4j.appender.MAIL.Threshold=ERROR
#緩存文件大小,日志達到10k時發送Email
log4j.appender.MAIL.BufferSize=10
#發送郵件的郵箱帳號
log4j.appender.MAIL.From=xxx@163.com
#SMTP郵件發送服務器地址
log4j.appender.MAIL.SMTPHost=smtp.163.com
#SMTP發送認證的帳號名
log4j.appender.MAIL.SMTPUsername=xxx@163.com
#SMTP發送認證帳號的密碼
log4j.appender.MAIL.SMTPPassword=xxx
#是否打印調試信息,如果選true,則會輸出和SMTP之間的握手等詳細信息
log4j.appender.MAIL.SMTPDebug=false
#郵件主題
log4j.appender.MAIL.Subject=Log4JErrorMessage
#發送到什么郵箱,如果要發送給多個郵箱,則用逗號分隔;
#如果需要發副本給某人,則加入下列行
#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代表的消息發送到指定郵箱中
本文題目:java代碼郵箱發送,JAVA實現郵件發送
瀏覽地址:http://www.yijiale78.com/article6/hocoog.html
成都網站建設公司_創新互聯,為您提供App開發、ChatGPT、品牌網站制作、定制開發、微信公眾號、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯