導航:首頁 > 編程語言 > java發送qq郵箱

java發送qq郵箱

發布時間:2022-08-26 14:42:31

javamail 用qq郵箱發送一直報錯

估摸著你是沒有設置使用stl傳輸,認證屬性設置中增加stl協議傳輸試試,如果還是不行,可以仔細看看javamail官網,有配置的demo。

❷ java發送郵件報錯的問題

你得給你的qq郵箱設置密碼,密碼不是你的qq密碼,需要自己設置

❸ java發郵件,密碼都正確就是發不出去,有的就能發出去

以qq郵箱為例:在收發件郵箱的「設置」里打開「賬戶」設置界面,找到POP3/IMAP......這些服務設置的地方,確保SMTP等服務開啟,才能接收到

如下圖

❹ java如何實現批量發送郵件

1.要想效率發郵件可以用多線程每個線程發指定批量的郵件
2.要想不被查封為垃圾郵件,這個就有很多地方要注意了
郵件的內容不要含有太多圖片信息,內容盡量簡潔,不要涉及一些淫穢色情的東西。
不要向同一個人發送同樣的郵件。
發郵件時ip最好用代理每發送個50封郵件就換個ip,因為郵件伺服器也會檢查你ip在這么短時間發了這么多郵件也會認為你是惡意群發。
最好能加入郵件接收者的白名單或訂閱名單

❺ Java收發郵件過程中具體的功能是怎麼實現的

1.SMTP協議

用戶連上郵件伺服器後,要想給它發送一封電子郵件,需要遵循一定的通迅規則,SMTP協議就是用於定義這種通訊規則的。

因而,通常我們也把處理用戶smtp請求(郵件發送請求)的郵件伺服器稱之為SMTP伺服器。(25)

2.POP3協議

同樣,用戶若想從郵件伺服器管理的電子郵箱中接收一封電子郵件的話,他連上郵件伺服器後,也需要遵循一定的通迅格式,POP3協議用於定義這種通訊格式。

因而,通常我們也把處理用戶pop3請求(郵件接收請求)的郵件伺服器稱之為POP3伺服器。(110)


下圖用於演示兩帳戶相互發送郵件的過程

packagecn.e.dlmu.send;

importjava.util.Properties;

importjavax.activation.DataHandler;
importjavax.activation.FileDataSource;
importjavax.mail.Message;
importjavax.mail.Session;
importjavax.mail.Transport;
importjavax.mail.internet.InternetAddress;
importjavax.mail.internet.MimeBodyPart;
importjavax.mail.internet.MimeMessage;
importjavax.mail.internet.MimeMultipart;
importjavax.mail.internet.MimeUtility;

publicclassSendMail{

publicstaticvoidmain(String[]args)throwsException{



Propertiesprop=newProperties();
//連接的郵件伺服器的主機名
prop.setProperty("mail.smtp.host","smtp.sina.com.cn");
//發送郵件的協議
prop.setProperty("mail.transport.protocol","smtp");
//是否向郵件伺服器提交認證
prop.setProperty("mail.smtp.auth","true");

//創建session
Sessionsession=Session.getInstance(prop);
session.setDebug(true);
//得到transport
Transportts=session.getTransport();
//連接郵件伺服器
ts.connect("smtp.sina.com.cn","[email protected]","xxxxx");
//發送郵件
MimeMessagemessage=createMessage(session);
ts.sendMessage(message,message.getAllRecipients());
ts.close();
}

(Sessionsession)throwsException{

MimeMessagemessage=newMimeMessage(session);

//設置郵件的基本信息
message.setFrom(newInternetAddress("[email protected]"));
message.setRecipient(Message.RecipientType.TO,newInternetAddress("[email protected]"));
message.setSubject("test");

//正文
MimeBodyParttext=newMimeBodyPart();
//設置charaset可以解決中文正文的亂碼問題,內嵌可下載的圖片
text.setContent("你好xxx,<imgsrc='c:/dog.jpg'/>測試成功!<br/><imgsrc='cid:aaa.jpg'/>","text/html;charset=gbk");
//圖片1
MimeBodyPartimage=newMimeBodyPart();
image.setDataHandler(newDataHandler(newFileDataSource("src/88.jpg")));
image.setContentID("aaa.jpg");
//附件
MimeBodyPartattach=newMimeBodyPart();
DataHandlerdh=newDataHandler(newFileDataSource("src/javamail架包.jar"));
attach.setDataHandler(dh);
//解決文件中文亂碼問題
attach.setFileName(MimeUtility.encodeText(dh.getName()));

//描述正文和圖片的關系
MimeMultipartmp=newMimeMultipart();
mp.addBodyPart(text);
mp.addBodyPart(image);
mp.setSubType("related");

//描述正文和附件
MimeMultipartmp2=newMimeMultipart();
mp2.addBodyPart(attach);
//將正文封裝為一個body
MimeBodyPartcontent=newMimeBodyPart();
content.setContent(mp);

mp2.addBodyPart(content);
mp2.setSubType("mixed");

message.setContent(mp2);
message.saveChanges();

returnmessage;
}

}

❻ Java Mail發送郵件

連接的錯誤,smtp是需要登錄伺服器的使用的是base64的編碼格式。沒有代碼也不太清楚 你哪裡錯了

❼ java郵箱發送報錯

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郵件發送類,使用javaMail類進行郵件發送
* by CKQ
* */

public class MailUtil {
//郵件伺服器
private static String mail_host=(String)PropertiesUtil.getMap().get("mail_host");//"smtp.yeah.net";
//郵件伺服器埠
private static int port=Integer.valueOf((String)PropertiesUtil.getMap().get("mail_port"));//25;
//郵件協議
private static String mail_transport_protocol=(String)PropertiesUtil.getMap().get("mail_transport_protocol");//"smtp";
//需要smtp驗證
private static String mail_smtp_auth=(String)PropertiesUtil.getMap().get("mail_smtp_auth");//"true";
//發送人用戶名
private static String username=(String)PropertiesUtil.getMap().get("mail_username");//"[email protected]";
//發送人密碼
private static String password=(String)PropertiesUtil.getMap().get("mail_password");//"xxxxxx";

//發送純文本郵件
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);
//經驗證qq郵箱需要添加一下兩條記錄,否則失敗,其他暫時不知道,這是安全協議所需要的類 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);
//設置為debug模式 ,生產環境應該關掉
session.setDebug(true);
//獲得transport對象
Transport ts=session.getTransport();

//連上郵件伺服器
ts.connect(mail_host,port, username,password);
//創建郵件
MimeMessage message=new MimeMessage(session);
//設置發送人
message.setFrom(new InternetAddress(from));

//設置接收人
message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));
//設置主題
message.setSubject(subject);
//設置內容
message.setContent(content,"text/html;charset=UTF-8");
//發送郵件
ts.sendMessage(message, message.getAllRecipients());
//關閉連接
ts.close();
} catch (Exception e) {
e.printStackTrace();
result=false;
}

return result;
}

//發送帶圖片的郵件
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,圖片到達郵件伺服器後會有一個contentId,然後html中可以引用這個contentId顯示該圖片。
String contentId="1."+suffix;
//內容模板
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);
//設置為debug模式 ,生產環境應該關掉
session.setDebug(true);
//獲得transport對象
Transport ts=session.getTransport();
//連上郵件伺服器
ts.connect(mail_host,port, username,password);
//創建郵件
MimeMessage message=new MimeMessage(session);
//設置發送人
message.setFrom(new InternetAddress(from));
//設置接收人
message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));
//設置標題
message.setSubject(subject);
//創建正文
MimeBodyPart text=new MimeBodyPart();
//設置內容
text.setContent(content,"text/html;charset=UTF8");
//創建一個圖片
MimeBodyPart image=new MimeBodyPart();
//從本地absoluteImagePath文件讀取
DataHandler dh=new DataHandler(new FileDataSource(absoluteImagePath));
image.setDataHandler(dh);
//設置圖片的contentId
image.setContentID(contentId);
//創建容器描述數據關系
javax.mail.internet.MimeMultipart mm=new MimeMultipart();
//容器添加內容
mm.addBodyPart(text);
//容器添加圖片
mm.addBodyPart(image);
mm.setSubType("related");
message.setContent(mm);
message.saveChanges();
//存儲創建的郵件
message.writeTo(new FileOutputStream("F:/imagemail.eml"));
ts.sendMessage(message, message.getAllRecipients());
ts.close();
} catch (Exception e) {
e.printStackTrace();
result=false;
}

return result;
}

//發送帶附件的郵件
public static boolean sendAttachMail(String from,String to,String subject,String content,List<String> 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);
//設置為debug模式 ,生產環境應該關掉
//session.setDebug(true);
//獲得transport對象
Transport ts=session.getTransport();
//連接郵件伺服器
ts.connect(mail_host,port, username,password);
//創建郵件
MimeMessage message=new MimeMessage(session);
//設置發送人
message.setFrom(new InternetAddress(from));
//設置接收人
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
//設置主題
message.setSubject(subject);
//創建正文
MimeBodyPart text=new MimeBodyPart();
//設置正文內容
text.setContent(content,"text/html;charset=UTF-8");
//創建容器描述關系
MimeMultipart mp=new MimeMultipart();
//添加正文
mp.addBodyPart(text);

for(int i=0;i<absoluteFilePathList.size();i++){
//創建附件
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;
}
}

❽ JAVA mail發送給多個QQ郵箱接收者時,每個QQ郵箱都收到兩份相同的郵件。

List<String>too=newArrayList<String>();
too.add("****@163.com");
// too.add("******@163.com");
InternetAddress[]to_mail=newInternetAddress[too.size()];
for(inti=0;i<too.size();i++){//設置接收郵件人的地址
to_mail[i]=newInternetAddress(String.valueOf(too.get(i)));
}
messageHelper.setTo(to_mail);

不要用for循環 用internetAddress[] . 我前幾天也是跟你一樣.

❾ 用java寫一個郵件發送代碼

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("[email protected]"); //郵件接收地址
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

❿ 關於java定時發送郵件,類似於QQ郵箱中的定時發送功能

建議方法:

  1. 如果你的java會死亡/失去控制, 請用系統的任務調度來發送郵件;

  2. 如果你的java由jboss等之類的託管, 用jboss內部的任務調度來發送郵件.

方法1:

Windws 平台, 在task中添加一個 任務, 命令行執行java 代碼即可, 這樣可靠性由操作系統保證;

Linux等平台, 直接 crontab 處理即可.

閱讀全文

與java發送qq郵箱相關的資料

熱點內容
阿里雲伺服器終端在哪裡 瀏覽:144
app紙有什麼用 瀏覽:219
cuteftp命令 瀏覽:502
最開始的編程語言是什麼 瀏覽:757
at遠程命令 瀏覽:490
雲伺服器哪家好點 瀏覽:211
android系統源碼閱讀 瀏覽:924
dumpjava分析工具 瀏覽:678
怎麼下載cpu源碼 瀏覽:154
代碼加密怎麼取消 瀏覽:888
編譯原理代碼在哪裡運行 瀏覽:584
解密攝影pdf 瀏覽:72
演算法編程中級題目 瀏覽:250
c語言編譯器畢業設計 瀏覽:717
醫保卡申請app哪個好 瀏覽:945
阿里雲伺服器上傳源碼 瀏覽:602
營銷管理科特勒pdf 瀏覽:696
願望清單app哪個好 瀏覽:461
安卓外放聲音怎麼解決 瀏覽:195
脈脈app干什麼用的 瀏覽:361