java代碼如何群發qq郵件
不少做技術的都不喜歡用常用的郵件群發軟件去發郵件,那么,今天一米軟件就來給大家分享一下java代碼如何群發qq郵件。
java代碼群發qq郵件注意事項:
純java開發的話,JDK1.6以外,需要導入這里自己打包的mail.jar.另外前三個類必須放同一包中。當然如果是javaEE,你完全不用擔心了,直接建類復制,或者下載用都行)。
第一個類 : 郵件發送類
package com.crt.settlement.service.test;
import java.util.Properties;
/**
* 郵件發送類
*
*/
public class MailSenderInfo {
// 發送郵件的服務器的IP(或主機地址)
private String mailServerHost;
// 發送郵件的服務器的端口
private String mailServerPort;
// 發件人郵箱地址
private String fromAddress;
// 收件人郵箱地址
private String toAddress;
// 登陸郵件發送服務器的用戶名
private String userName;
// 登陸郵件發送服務器的密碼
private String password;
// 是否需要身份驗證
private boolean validate = false;
// 郵件主題
private String subject;
// 郵件的文本內容
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);
//設置是否安全驗證,默認為false,一般情況都設置為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;
}
}
第二個類 : 發送郵件類
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;
/**
* 發送郵件的類
*
*
*/
public class SimpleMailSender {
public boolean sendTextMail(MailSenderInfo mailInfo) {
// 判斷是否需要身份認證
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
if (mailInfo.isValidate()) {
// 如果需要身份認證,則創建一個密碼驗證器
QQ 郵箱通過生成授權碼來設置密碼:
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根據郵件會話屬性和密碼驗證器構造一個發送郵件的session
Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
try {
// 根據session創建一個郵件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 創建郵件發送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 設置郵件消息的發送者
mailMessage.setFrom(from);
// 創建郵件的接收者地址,并設置到郵件消息中
// 發送給多人
String toList = getMailList(mailInfo.getToAddress().split(","));
InternetAddress[] iaToList = new InternetAddress().parse(toList);
// Message.RecipientType.TO屬性表示接收者的類型為TO
mailMessage.setRecipients(Message.RecipientType.TO, iaToList);
// 設置郵件消息的主題
mailMessage.setSubject(mailInfo.getSubject());
// 設置郵件消息發送的時間
mailMessage.setSentDate(new Date());
// 設置郵件消息的主要內容
String mailContent = mailInfo.getContent();
mailMessage.setText(mailContent);
mailMessage.saveChanges();
// 發送郵件
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();
// 如果需要身份認證,則創建一個密碼驗證器
if (mailInfo.isValidate()) {
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根據郵件會話屬性和密碼驗證器構造一個發送郵件的session
Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
try {
// 根據session創建一個郵件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 創建郵件發送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 設置郵件消息的發送者
mailMessage.setFrom(from);
// 創建郵件的接收者地址,并設置到郵件消息中
// 發送給多人
String toList = getMailList(mailInfo.getToAddress().split(","));
InternetAddress[] iaToList = new InternetAddress().parse(toList);
// Message.RecipientType.TO屬性表示接收者的類型為TO
mailMessage.setRecipients(Message.RecipientType.TO, iaToList);
// 設置郵件消息的主題
mailMessage.setSubject(mailInfo.getSubject());
// 設置郵件消息發送的時間
mailMessage.setSentDate(new Date());
// MiniMultipart類是一個容器類,包含MimeBodyPart類型的對象
Multipart mainPart = new MimeMultipart();
// 創建一個包含HTML內容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 設置HTML內容
html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
mainPart.addBodyPart(html);
// 將MiniMultipart對象設置為郵件內容
mailMessage.setContent(mainPart);
mailMessage.saveChanges();
// 發送郵件
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);
}
}
第四個類 : 測試類:
需要注意,當中需要自己修改的地方都已經做了配置,值的一提的事:
服務器的ip和port是在網上可以輕松查到的,您需要用什么郵箱發,就設置成對應郵箱的服務器。
發郵件別用剛申請的郵箱,一般剛申請的郵箱是不會給你這個權限的,要不就是需要綁定,要不就是有一定期限。建議測試時用自己已經用過很久的qq郵箱或者163等其他郵箱。
對于使用qq郵箱發送,需要在QQ郵箱中進行如下設置上的更改:在登錄QQ郵箱后臺在"設置"=》賬號中開啟POP3/SMTP服務
QQ 郵箱通過生成授權碼來設置密碼
package com.crt.settlement.service.test;
/**
* 設置數據,開始發送
*
*/
public class SendMailDemo {
public static void main(String[] args) {
// 設置郵件服務器信息
MailSenderInfo mailInfo = new MailSenderInfo();
mailInfo.setMailServerHost("smtp.qq.com");// 發送郵件的服務器的IP(或主機地址)
mailInfo.setMailServerPort("587");
// mailInfo.setMailServerHost("smtp.163.com");// 發送郵件的163服務器的IP(或主機地址)
// mailInfo.setMailServerPort("25");
mailInfo.setValidate(true);
// 郵箱用戶名(根據自己情況設置)
mailInfo.setUserName("91***01183@qq.com");
// 郵箱密碼(根據自己情況設置)(注意此處密碼為授權碼)
mailInfo.setPassword("rueqjpdgcvrgbbje");
// 發件人郵箱(根據自己情況設置,如果你沒對郵箱進行特別設置,應該和郵箱用戶名一致)
mailInfo.setFromAddress("91***01183@qq.com");
// 收件人郵箱(根據自己情況設置)
//設置為發送給多人
mailInfo.setToAddress("xidahuanghui@163.com,7633434534@qq.com");
// 郵件標題
mailInfo.setSubject("測試Java發送郵件");
// 郵件內容
StringBuffer buffer = new StringBuffer();
buffer.append("地址:");
buffer.append("測試測試測試");
mailInfo.setContent(buffer.toString());
// 發送郵件
SimpleMailSender sms = new SimpleMailSender();
// 發送文體格式
sms.sendTextMail(mailInfo);
// 發送html格式
SimpleMailSender.sendHtmlMail(mailInfo);
System.out.println("郵件發送完畢");
}
}
上一條:163郵箱能群發給qq郵件嗎
下一條:為什么群發qq郵件有人沒收到
-
網絡營銷 自建型郵件群發系統哪家好
自建型郵件群發系統哪家好?自建郵局做群發發外貿開發信,玩郵件服務器,就一定會和現在最強的郵件服務器...
2020-07-16 14:01:16 閱讀:5257 #網絡營銷#
-
網絡營銷 umail郵件群發系統
umail郵件群發系統在節約企業人力物力的同時,更好的保證了郵件送達率和郵件營銷效果。全程跟蹤郵件...
2020-07-16 14:15:27 閱讀:3712 #網絡營銷#
-
網絡營銷 郵件群發系統有好用的嗎
郵件群發系統有好用的嗎?這是很多新手都很關心的問題,下面就讓一米軟件來給大家解答一下。 ...
2020-07-16 14:27:00 閱讀:4352 #網絡營銷#
-
網絡營銷 日發50萬郵件群發系統
日發50萬郵件群發系統是通過簽署郵件群發服務器協議的大站推介信、推薦信、邀請信、分享信、轉介信、轉...
2020-07-16 14:34:07 閱讀:5672 #網絡營銷#
-
網絡營銷 數碼之家郵件群發系統
數碼之家郵件群發系統是由一起努力郵件群發系統全面升級而來,也可以說是完全不同的軟件,其核心編程全部...
2020-07-16 15:07:26 閱讀:3295 #網絡營銷#
熱門推薦
- 1怎么利用Facebook賺錢閱讀:7835
- 2電子郵件營銷的策略 閱讀:7219
- 3郵箱群發不進垃圾箱閱讀:8087
- 4群發郵箱平臺哪個好 閱讀:7170
- 5郵件推廣中的具體營銷步驟閱讀:7368
- 6如何群發郵件但不被發現閱讀:8642
- 7群發郵件如何不屏蔽閱讀:5370
- 8郵件如何群發多個不同的人閱讀:5648
- 9哪個郵箱群發效果好閱讀:5340
- 10如何群發郵件閱讀:5663
- 11電子郵件的營銷方法 閱讀:5298
- 12電子郵件雜志營銷 閱讀:5302
- 13電子郵件廣告樣式閱讀:5318
- 14郵件批量發送軟件 閱讀:5669
- 15外貿郵件群發閱讀:5179
- 16哪個郵箱群發效果好閱讀:5090
- 17郵件推廣的技巧閱讀:5420
- 18郵件如何群發閱讀:5166
- 19facebook 怎么增加好友閱讀:5320
- 20如何可以群發郵件 閱讀:5348
- 21郵件廣告投放渠道有哪些閱讀:5972
- 22批量群發郵件 閱讀:5335
- 23怎么發廣告郵件閱讀:5739
- 24郵件批量發送系統使用方法閱讀:5249
- 25群發郵件數量限制閱讀:6012
- 26批量發送個性化郵件閱讀:5440
- 27郵件怎么群發給很多人閱讀:5105
- 28如何自動發廣告郵件閱讀:5690
- 29如何群發郵件閱讀:77665
- 30郵件如何發給多人閱讀:78680
標簽更多+