❶ 關於java定時發送郵件,類似於QQ郵箱中的定時發送功能
建議方法:
如果你的java會死亡/失去控制, 請用系統的任務調度來發送郵件;
如果你的java由jboss等之類的託管, 用jboss內部的任務調度來發送郵件.
方法1:
Windws 平台, 在task中添加一個 任務, 命令行執行java 代碼即可, 這樣可靠性由操作系統保證;
Linux等平台, 直接 crontab 處理即可.
❷ java 關於郵件發送,接受地址填的是163或者QQ的,但不知道為啥總錯誤
1.自己電腦不需要配smtp,你是用163的smtp
2.553是收件人地址無法解析的錯誤,在addRecipients那一行斷點,看看toAddr傳過來的參數是不是有問題
❸ 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如何實現批量發送郵件
1.要想效率發郵件可以用多線程每個線程發指定批量的郵件
2.要想不被查封為垃圾郵件,這個就有很多地方要注意了
郵件的內容不要含有太多圖片信息,內容盡量簡潔,不要涉及一些淫穢色情的東西。
不要向同一個人發送同樣的郵件。
發郵件時ip最好用代理每發送個50封郵件就換個ip,因為郵件伺服器也會檢查你ip在這么短時間發了這么多郵件也會認為你是惡意群發。
最好能加入郵件接收者的白名單或訂閱名單
❻ 如何使用Java已有框架進行郵件發送
1、方法/步驟
HtmlEmail semail = new HtmlEmail();
調用HtmlEmai類。
2、設置配置信息。
semail.setFrom("發送郵箱", "主題");
semail.setCharset("utf-8"); //設置編碼
semail.setHostName("smtp.qq.com"); //設置SMTP
semail.setAuthentication("用戶名","密碼"); //設置你的郵箱帳號以及密碼
semail.setSubject("主題"); //郵件標題
semail.setHtmlMsg("發送內容"); //郵件內容
semail.addTo("接收郵箱"); //收件箱
3、開始發送
semail.send();
4、成功操作。
❼ java使用main函數進行郵件發送怎樣設置郵件格式
1、首先電腦可以連網;
代碼:
//獲取Email
StringguwenEmail="你的發送Email";
//將Email取出@和.之間的後綴,作為發送類型,比如[email protected]→qq
Stringguwen=guwenEmail.substring(guwenEmail.indexOf("@")+1,guwenEmail.indexOf("."));
//獲取密碼
StringguwenPwd="密碼";
//獲取Email
Stringtouremail="目標Email";
//創建發送郵件對象email
SimpleEmailemail=newSimpleEmail();
//設置發送類型
email.setHostName("smtp."+guwen+".com");
//設置email,密碼
email.setAuthentication(guwenEmail,guwenPwd);
//設置字元編碼
email.setCharset("UTF-8");
try{
email.setSSL(true);
//設置接收郵箱
email.addTo(touremail);
//設置發送郵箱
email.setFrom(guwenEmail);
//設置郵件標題
email.setSubject("路書");
//設置郵件內容
email.setMsg("呵呵");
//設置發送
email.send();
}catch(Exceptione){
e.printStackTrace();
returnINPUT;
}
❽ 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郵箱發送報錯
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來發送帶附件的郵件
用java來發送帶附件的郵件要翻譯的。