public boolean sendout()
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)克州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
{
try
{
mimeMessage.setContent(mp);
mimeMessage.saveChanges();
Session mailSession = Session.getInstance(props, null);
Transport transport = mailSession.getTransport("smtp");
transport.connect(hostname, username, password);
transport.sendMessage(mimeMessage, mimeMessage.getRecipients(javax.mail.Message.RecipientType.TO));
transport.close();
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
return true;
}
package com.gpt.util.email;
import java.io.FileOutputStream;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import com.gpt.util.PropertiesUtil;
/**
*
* Java郵件發(fā)送類,使用javaMail類進(jìn)行郵件發(fā)送
* by CKQ
* */
public class MailUtil {
//郵件服務(wù)器
private static String mail_host=(String)PropertiesUtil.getMap().get("mail_host");//"smtp.yeah.net";
//郵件服務(wù)器端口
private static int port=Integer.valueOf((String)PropertiesUtil.getMap().get("mail_port"));//25;
//郵件協(xié)議
private static String mail_transport_protocol=(String)PropertiesUtil.getMap().get("mail_transport_protocol");//"smtp";
//需要smtp驗(yàn)證
private static String mail_smtp_auth=(String)PropertiesUtil.getMap().get("mail_smtp_auth");//"true";
//發(fā)送人用戶名
private static String username=(String)PropertiesUtil.getMap().get("mail_username");//"wujianhui321@yeah.net";
//發(fā)送人密碼
private static String password=(String)PropertiesUtil.getMap().get("mail_password");//"xxxxxx";
//發(fā)送純文本郵件
public static boolean sendSimpleMail(String from,String to,String subject,String content) {
boolean result=true;
try {
Properties prop=new Properties();
prop.setProperty("mail.host", mail_host);
prop.setProperty("mail.transport.protocol", mail_transport_protocol);
prop.setProperty("mail.smtp.auth", mail_smtp_auth);
//經(jīng)驗(yàn)證qq郵箱需要添加一下兩條記錄,否則失敗,其他暫時(shí)不知道,這是安全協(xié)議所需要的類 add by CKQ 2017-7-19
prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.setProperty("mail.smtp.socketFactory.port", String.valueOf(port));
Session session=Session.getInstance(prop);
//設(shè)置為debug模式 ,生產(chǎn)環(huán)境應(yīng)該關(guān)掉
session.setDebug(true);
//獲得transport對象
Transport ts=session.getTransport();
//連上郵件服務(wù)器
ts.connect(mail_host,port, username,password);
//創(chuàng)建郵件
MimeMessage message=new MimeMessage(session);
//設(shè)置發(fā)送人
message.setFrom(new InternetAddress(from));
//設(shè)置接收人
message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));
//設(shè)置主題
message.setSubject(subject);
//設(shè)置內(nèi)容
message.setContent(content,"text/html;charset=UTF-8");
//發(fā)送郵件
ts.sendMessage(message, message.getAllRecipients());
//關(guān)閉連接
ts.close();
} catch (Exception e) {
e.printStackTrace();
result=false;
}
return result;
}
//發(fā)送帶圖片的郵件
public static boolean sendImageMail(String from,String to,String subject,String absoluteImagePath) throws Exception{
boolean result=true;
try {
//獲取圖片后綴
String suffix=absoluteImagePath.substring(absoluteImagePath.lastIndexOf(".")+1,absoluteImagePath.length()) ;
//定義contentId,圖片到達(dá)郵件服務(wù)器后會(huì)有一個(gè)contentId,然后html中可以引用這個(gè)contentId顯示該圖片。
String contentId="1."+suffix;
//內(nèi)容模板
String content="帶圖片的郵件img src='cid:"+contentId+"'/";
Properties prop=new Properties();
prop.setProperty("mail.host", mail_host);
prop.setProperty("mail.transport.protocol", mail_transport_protocol);
prop.setProperty("mail.smtp.auth", mail_smtp_auth);
Session session=Session.getInstance(prop);
//設(shè)置為debug模式 ,生產(chǎn)環(huán)境應(yīng)該關(guān)掉
session.setDebug(true);
//獲得transport對象
Transport ts=session.getTransport();
//連上郵件服務(wù)器
ts.connect(mail_host,port, username,password);
//創(chuàng)建郵件
MimeMessage message=new MimeMessage(session);
//設(shè)置發(fā)送人
message.setFrom(new InternetAddress(from));
//設(shè)置接收人
message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));
//設(shè)置標(biāo)題
message.setSubject(subject);
//創(chuàng)建正文
MimeBodyPart text=new MimeBodyPart();
//設(shè)置內(nèi)容
text.setContent(content,"text/html;charset=UTF8");
//創(chuàng)建一個(gè)圖片
MimeBodyPart image=new MimeBodyPart();
//從本地absoluteImagePath文件讀取
DataHandler dh=new DataHandler(new FileDataSource(absoluteImagePath));
image.setDataHandler(dh);
//設(shè)置圖片的contentId
image.setContentID(contentId);
//創(chuàng)建容器描述數(shù)據(jù)關(guān)系
javax.mail.internet.MimeMultipart mm=new MimeMultipart();
//容器添加內(nèi)容
mm.addBodyPart(text);
//容器添加圖片
mm.addBodyPart(image);
mm.setSubType("related");
message.setContent(mm);
message.saveChanges();
//存儲(chǔ)創(chuàng)建的郵件
message.writeTo(new FileOutputStream("F:/imagemail.eml"));
ts.sendMessage(message, message.getAllRecipients());
ts.close();
} catch (Exception e) {
e.printStackTrace();
result=false;
}
return result;
}
//發(fā)送帶附件的郵件
public static boolean sendAttachMail(String from,String to,String subject,String content,ListString absoluteFilePathList) throws Exception{
boolean result=true;
try {
Properties prop=new Properties();
prop.setProperty("mail.host", mail_host);
prop.setProperty("mail.transport.protocol", mail_transport_protocol);
prop.setProperty("mail.smtp.auth", mail_smtp_auth);
Session session=Session.getInstance(prop);
//設(shè)置為debug模式 ,生產(chǎn)環(huán)境應(yīng)該關(guān)掉
//session.setDebug(true);
//獲得transport對象
Transport ts=session.getTransport();
//連接郵件服務(wù)器
ts.connect(mail_host,port, username,password);
//創(chuàng)建郵件
MimeMessage message=new MimeMessage(session);
//設(shè)置發(fā)送人
message.setFrom(new InternetAddress(from));
//設(shè)置接收人
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
//設(shè)置主題
message.setSubject(subject);
//創(chuàng)建正文
MimeBodyPart text=new MimeBodyPart();
//設(shè)置正文內(nèi)容
text.setContent(content,"text/html;charset=UTF-8");
//創(chuàng)建容器描述關(guān)系
MimeMultipart mp=new MimeMultipart();
//添加正文
mp.addBodyPart(text);
for(int i=0;iabsoluteFilePathList.size();i++){
//創(chuàng)建附件
MimeBodyPart attach=new MimeBodyPart();
DataHandler dh=new DataHandler(new FileDataSource(absoluteFilePathList.get(i)));
attach.setDataHandler(dh);
attach.setFileName(dh.getName());
//容器添加附件
mp.addBodyPart(attach);
}
mp.setSubType("mixed");
message.setContent(mp);
message.saveChanges();
//保存郵件至F盤
message.writeTo(new FileOutputStream("F:/attachMail.eml"));
ts.sendMessage(message, message.getAllRecipients());
ts.close();
} catch (Exception e) {
e.printStackTrace();
result=false;
}
return result;
}
}
在Windows下運(yùn)行應(yīng)用程序時(shí)出現(xiàn)非法操作的提示
此類故障引起原因較多,在如下幾鐘可能:
(1) 系統(tǒng)文件被更改或損壞,倘若由此引發(fā)則打開一些系統(tǒng)自帶的程序時(shí)就會(huì)出現(xiàn)非法操作,(例如,打開控制面板)
(2) 驅(qū)動(dòng)程序未正確安裝,此類故障一般表現(xiàn)在顯卡驅(qū)動(dòng)程序之止,倘若由此引發(fā),則打開一些游戲程序時(shí)就會(huì)產(chǎn)生非法操作,有時(shí)打開一此網(wǎng)頁也會(huì)出現(xiàn)這種程況。
(3) 內(nèi)存質(zhì)量不好,降低內(nèi)存速度也可能會(huì)解決這個(gè)問題。
(4) 軟件不兼容,如,IE 5。5在Windows 98 SE 上,當(dāng)打開多個(gè)網(wǎng)頁也會(huì)產(chǎn)生非法操作。
比較可能的原因:是jar包版本不統(tǒng)一
由于Javaee5中的mail還存在一些問題,和原來的mail.jar和activition.jar存在沖突。
如果你用myEclipse進(jìn)行開發(fā)的話,運(yùn)行時(shí)可能會(huì)出現(xiàn)以下的錯(cuò)誤:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
原因是jar包版本不統(tǒng)一,解決方法如下:
刪除Java EE 5 Libraries/javaee.jar/mail里的包有東西,如果還是不行把a(bǔ)ctivition也刪了。
具體方法如下:
用 rar打開X:/Program Files/MyEclipse 6.0/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_6.0.1.zmyeclipse601200710/data/libraryset/EE_5/javaee.jar
,然后刪除mail,接著把以前的mail.jar和activition.jar導(dǎo)入即可。
主要原因是郵件客戶端連接異常:
一、IP地址連接異常;
二、用戶名密碼錯(cuò)誤。
可根據(jù)自己使用情況按照出現(xiàn)的原因調(diào)整一下即可正常使用。
JavaMail,顧名思義,提供給開發(fā)者處理電子郵件相關(guān)的編程接口。它是Sun發(fā)布的用來處理email的API。它可以方便地執(zhí)行一些常用的郵件傳輸。我們可以基于JavaMail開發(fā)出類似于Microsoft Outlook的應(yīng)用程序。
發(fā)郵件之前加上
MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
CommandMap.setDefaultCommandMap(mc);
設(shè)置郵件接收協(xié)議