java代碼如何群發(fā)qq郵件
不少做技術(shù)的都不喜歡用常用的郵件群發(fā)軟件去發(fā)郵件,那么,今天一米軟件就來給大家分享一下java代碼如何群發(fā)qq郵件。
java代碼群發(fā)qq郵件注意事項:
純java開發(fā)的話,JDK1.6以外,需要導(dǎo)入這里自己打包的mail.jar.另外前三個類必須放同一包中。當(dāng)然如果是javaEE,你完全不用擔(dān)心了,直接建類復(fù)制,或者下載用都行)。
第一個類 : 郵件發(fā)送類
package com.crt.settlement.service.test;
import java.util.Properties;
/**
* 郵件發(fā)送類
*
*/
public class MailSenderInfo {
// 發(fā)送郵件的服務(wù)器的IP(或主機地址)
private String mailServerHost;
// 發(fā)送郵件的服務(wù)器的端口
private String mailServerPort;
// 發(fā)件人郵箱地址
private String fromAddress;
// 收件人郵箱地址
private String toAddress;
// 登陸郵件發(fā)送服務(wù)器的用戶名
private String userName;
// 登陸郵件發(fā)送服務(wù)器的密碼
private String password;
// 是否需要身份驗證
private boolean validate = false;
// 郵件主題
private String subject;
// 郵件的文本內(nèi)容
private String content;
// 郵件附件的文件名
private String[] attachFileNames;
public Properties getProperties() {
Properties p = new Properties();
p.put("mail.smtp.host", this.mailServerHost);
p.put("mail.smtp.port", this.mailServerPort);
//設(shè)置是否安全驗證,默認為false,一般情況都設(shè)置為true
p.put("mail.smtp.auth", validate ? "true" : "false");
return p;
}
public String getMailServerHost() {
return mailServerHost;
}
public void setMailServerHost(String mailServerHost) {
this.mailServerHost = mailServerHost;
}
public String getMailServerPort() {
return mailServerPort;
}
public void setMailServerPort(String mailServerPort) {
this.mailServerPort = mailServerPort;
}
public boolean isValidate() {
return validate;
}
public void setValidate(boolean validate) {
this.validate = validate;
}
public String[] getAttachFileNames() {
return attachFileNames;
}
public void setAttachFileNames(String[] fileNames) {
this.attachFileNames = fileNames;
}
public String getFromAddress() {
return fromAddress;
}
public void setFromAddress(String fromAddress) {
this.fromAddress = fromAddress;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getToAddress() {
return toAddress;
}
public void setToAddress(String toAddress) {
this.toAddress = toAddress;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String textContent) {
this.content = textContent;
}
}
第二個類 : 發(fā)送郵件類
package com.crt.settlement.service.test;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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;
/**
* 發(fā)送郵件的類
*
*
*/
public class SimpleMailSender {
public boolean sendTextMail(MailSenderInfo mailInfo) {
// 判斷是否需要身份認證
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
if (mailInfo.isValidate()) {
// 如果需要身份認證,則創(chuàng)建一個密碼驗證器
QQ 郵箱通過生成授權(quán)碼來設(shè)置密碼:
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根據(jù)郵件會話屬性和密碼驗證器構(gòu)造一個發(fā)送郵件的session
Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
try {
// 根據(jù)session創(chuàng)建一個郵件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 創(chuàng)建郵件發(fā)送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 設(shè)置郵件消息的發(fā)送者
mailMessage.setFrom(from);
// 創(chuàng)建郵件的接收者地址,并設(shè)置到郵件消息中
// 發(fā)送給多人
String toList = getMailList(mailInfo.getToAddress().split(","));
InternetAddress[] iaToList = new InternetAddress().parse(toList);
// Message.RecipientType.TO屬性表示接收者的類型為TO
mailMessage.setRecipients(Message.RecipientType.TO, iaToList);
// 設(shè)置郵件消息的主題
mailMessage.setSubject(mailInfo.getSubject());
// 設(shè)置郵件消息發(fā)送的時間
mailMessage.setSentDate(new Date());
// 設(shè)置郵件消息的主要內(nèi)容
String mailContent = mailInfo.getContent();
mailMessage.setText(mailContent);
mailMessage.saveChanges();
// 發(fā)送郵件
Transport.send(mailMessage);
return true;
} catch (MessagingException ex) {
ex.printStackTrace();
}
return false;
}
public static boolean sendHtmlMail(MailSenderInfo mailInfo) {
// 判斷是否需要身份認證
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
// 如果需要身份認證,則創(chuàng)建一個密碼驗證器
if (mailInfo.isValidate()) {
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根據(jù)郵件會話屬性和密碼驗證器構(gòu)造一個發(fā)送郵件的session
Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
try {
// 根據(jù)session創(chuàng)建一個郵件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 創(chuàng)建郵件發(fā)送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 設(shè)置郵件消息的發(fā)送者
mailMessage.setFrom(from);
// 創(chuàng)建郵件的接收者地址,并設(shè)置到郵件消息中
// 發(fā)送給多人
String toList = getMailList(mailInfo.getToAddress().split(","));
InternetAddress[] iaToList = new InternetAddress().parse(toList);
// Message.RecipientType.TO屬性表示接收者的類型為TO
mailMessage.setRecipients(Message.RecipientType.TO, iaToList);
// 設(shè)置郵件消息的主題
mailMessage.setSubject(mailInfo.getSubject());
// 設(shè)置郵件消息發(fā)送的時間
mailMessage.setSentDate(new Date());
// MiniMultipart類是一個容器類,包含MimeBodyPart類型的對象
Multipart mainPart = new MimeMultipart();
// 創(chuàng)建一個包含HTML內(nèi)容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 設(shè)置HTML內(nèi)容
html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
mainPart.addBodyPart(html);
// 將MiniMultipart對象設(shè)置為郵件內(nèi)容
mailMessage.setContent(mainPart);
mailMessage.saveChanges();
// 發(fā)送郵件
Transport.send(mailMessage);
return true;
} catch (MessagingException ex) {
ex.printStackTrace();
}
return false;
}
private static String getMailList(String[] mailArray) {
StringBuffer toList = new StringBuffer();
int length = mailArray.length;
if (mailArray != null && length < 2) {
toList.append(mailArray[0]);
} else {
for (int i = 0; i < length; i++) {
toList.append(mailArray[i]);
if (i != (length - 1)) {
toList.append(",");
}
}
}
return toList.toString();
}
}
第三個類 : 郵件認證器
package com.crt.settlement.service.test;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
/**
* 郵件用戶名和密碼認證器
*
*/
public class MyAuthenticator extends Authenticator{
String userName = null;
String password = null;
public MyAuthenticator() {
}
public MyAuthenticator(String username, String password) {
this.userName = username;
this.password = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}
}
第四個類 : 測試類:
需要注意,當(dāng)中需要自己修改的地方都已經(jīng)做了配置,值的一提的事:
服務(wù)器的ip和port是在網(wǎng)上可以輕松查到的,您需要用什么郵箱發(fā),就設(shè)置成對應(yīng)郵箱的服務(wù)器。
發(fā)郵件別用剛申請的郵箱,一般剛申請的郵箱是不會給你這個權(quán)限的,要不就是需要綁定,要不就是有一定期限。建議測試時用自己已經(jīng)用過很久的qq郵箱或者163等其他郵箱。
對于使用qq郵箱發(fā)送,需要在QQ郵箱中進行如下設(shè)置上的更改:在登錄QQ郵箱后臺在"設(shè)置"=》賬號中開啟POP3/SMTP服務(wù)
QQ 郵箱通過生成授權(quán)碼來設(shè)置密碼
package com.crt.settlement.service.test;
/**
* 設(shè)置數(shù)據(jù),開始發(fā)送
*
*/
public class SendMailDemo {
public static void main(String[] args) {
// 設(shè)置郵件服務(wù)器信息
MailSenderInfo mailInfo = new MailSenderInfo();
mailInfo.setMailServerHost("smtp.qq.com");// 發(fā)送郵件的服務(wù)器的IP(或主機地址)
mailInfo.setMailServerPort("587");
// mailInfo.setMailServerHost("smtp.163.com");// 發(fā)送郵件的163服務(wù)器的IP(或主機地址)
// mailInfo.setMailServerPort("25");
mailInfo.setValidate(true);
// 郵箱用戶名(根據(jù)自己情況設(shè)置)
mailInfo.setUserName("91***01183@qq.com");
// 郵箱密碼(根據(jù)自己情況設(shè)置)(注意此處密碼為授權(quán)碼)
mailInfo.setPassword("rueqjpdgcvrgbbje");
// 發(fā)件人郵箱(根據(jù)自己情況設(shè)置,如果你沒對郵箱進行特別設(shè)置,應(yīng)該和郵箱用戶名一致)
mailInfo.setFromAddress("91***01183@qq.com");
// 收件人郵箱(根據(jù)自己情況設(shè)置)
//設(shè)置為發(fā)送給多人
mailInfo.setToAddress("xidahuanghui@163.com,7633434534@qq.com");
// 郵件標(biāo)題
mailInfo.setSubject("測試Java發(fā)送郵件");
// 郵件內(nèi)容
StringBuffer buffer = new StringBuffer();
buffer.append("地址:");
buffer.append("測試測試測試");
mailInfo.setContent(buffer.toString());
// 發(fā)送郵件
SimpleMailSender sms = new SimpleMailSender();
// 發(fā)送文體格式
sms.sendTextMail(mailInfo);
// 發(fā)送html格式
SimpleMailSender.sendHtmlMail(mailInfo);
System.out.println("郵件發(fā)送完畢");
}
}
-
郵件營銷公司排名
郵件營銷公司排名?一米軟件是一家專注于網(wǎng)絡(luò)營銷,推廣相關(guān)軟件開發(fā)與銷售的創(chuàng)新型企業(yè),一米擁有一支具...
2020-12-01 14:56:49 閱讀:2059 #網(wǎng)絡(luò)營銷#
-
郵件營銷策劃
在郵件營銷策劃中標(biāo)題是很重要的,下面一米軟件就來給大家分享一些技巧,幫助大家成為寫郵件營銷標(biāo)題的高...
2020-12-02 14:11:00 閱讀:2856 #網(wǎng)絡(luò)營銷#
-
郵件營銷的優(yōu)缺點
很多人不知道郵件營銷的優(yōu)缺點各是什么,下面就讓一米軟件來給大家介紹一下。 一...
2020-12-02 14:58:04 閱讀:4426 #網(wǎng)絡(luò)營銷#
-
華思郵件營銷
華思郵件營銷是北京華思智文科技有限公司專為企業(yè)市場宣傳服務(wù)的郵件營銷平臺,可提供從模板設(shè)計、內(nèi)容制...
2020-12-02 15:34:49 閱讀:2689 #網(wǎng)絡(luò)營銷#
-
電子郵件營銷的缺點
都說電子郵件營銷效果好,但其實任何事情遠均有兩面性,電子郵件營銷的缺點也很非常明顯: ...
2020-12-02 15:38:58 閱讀:6143 #網(wǎng)絡(luò)營銷#
熱門推薦
- 1怎么利用Facebook賺錢閱讀:4464
- 2電子郵件營銷的策略 閱讀:4028
- 3郵箱群發(fā)不進垃圾箱閱讀:4341
- 4群發(fā)郵箱平臺哪個好 閱讀:4196
- 5郵件推廣中的具體營銷步驟閱讀:4344
- 6如何群發(fā)郵件但不被發(fā)現(xiàn)閱讀:5167
- 7群發(fā)郵件如何不屏蔽閱讀:2981
- 8郵件如何群發(fā)多個不同的人閱讀:3111
- 9哪個郵箱群發(fā)效果好閱讀:2943
- 10如何群發(fā)郵件閱讀:3100
- 11電子郵件的營銷方法 閱讀:2942
- 12電子郵件雜志營銷 閱讀:2917
- 13電子郵件廣告樣式閱讀:3036
- 14郵件批量發(fā)送軟件 閱讀:3111
- 15外貿(mào)郵件群發(fā)閱讀:2866
- 16哪個郵箱群發(fā)效果好閱讀:2868
- 17郵件推廣的技巧閱讀:3021
- 18郵件如何群發(fā)閱讀:2888
- 19facebook 怎么增加好友閱讀:3124
- 20如何可以群發(fā)郵件 閱讀:3029
- 21郵件廣告投放渠道有哪些閱讀:3370
- 22批量群發(fā)郵件 閱讀:2982
- 23怎么發(fā)廣告郵件閱讀:3197
- 24郵件批量發(fā)送系統(tǒng)使用方法閱讀:2943
- 25群發(fā)郵件數(shù)量限制閱讀:3444
- 26批量發(fā)送個性化郵件閱讀:3053
- 27郵件怎么群發(fā)給很多人閱讀:2891
- 28如何自動發(fā)廣告郵件閱讀:3182
- 29如何群發(fā)郵件閱讀:75352
- 30郵件如何發(fā)給多人閱讀:75599
標(biāo)簽更多+