Ⅰ javamail怎麼發送群組郵件
最近公司的項目用到了Java Mail來發送注冊郵件,不過,開發的時候都是使用封裝好的JAR,以前也不是很了解Java Mail的使用原理。網上很多代碼都是只有一部分,看一看也跑不起來,今天正好有時間,自己寫了一個實現,放在了自己的工具JAR里。閑話不多說,我的項目是使用Gradle構建的,依賴的引用如下:
[plain] view plain
//JavaMail
compile('javax.mail:mail:1.4.7')
相當於Maven的groupId,artifactId,version
構建後應該引用了兩個JAR:。如果第二個JAR沒有的話,大家可以去Maven庫找一下,就不多講述了。
實現的源碼如下,一般直接拿來就可以用了~
[java] view plain
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
/**
* Java Mail 工具類
*
* @author XueQi
* @version 1.0
*
*/
public class MailUtils {
private static String host;
private static String username;
private static String password;
private static String from;
private static String nick;
static {
try {
// Test Data
host = "smtp.163.com";
username = "郵箱用戶名";
password = "郵箱密碼";
from = "[email protected]";
nick = "測試admin";
// nick + from 組成郵箱的發件人信息
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 發送郵件
*
* @param to
* 收件人列表,以","分割
* @param subject
* 標題
* @param body
* 內容
* @param filepath
* 附件列表,無附件傳遞null
* @return
* @throws MessagingException
* @throws AddressException
* @throws UnsupportedEncodingException
*/
public static boolean sendMail(String to, String subject, String body,
List<String> filepath) throws AddressException, MessagingException,
UnsupportedEncodingException {
// 參數修飾
if (body == null) {
body = "";
}
if (subject == null) {
subject = "無主題";
}
// 創建Properties對象
Properties props = System.getProperties();
// 創建信件伺服器
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true"); // 通過驗證
// 得到默認的對話對象
Session session = Session.getDefaultInstance(props, null);
// 創建一個消息,並初始化該消息的各項元素
MimeMessage msg = new MimeMessage(session);
nick = MimeUtility.encodeText(nick);
msg.setFrom(new InternetAddress(nick + "<" + from + ">"));
// 創建收件人列表
if (to != null && to.trim().length() > 0) {
String[] arr = to.split(",");
int receiverCount = arr.length;
if (receiverCount > 0) {
InternetAddress[] address = new InternetAddress[receiverCount];
for (int i = 0; i < receiverCount; i++) {
address[i] = new InternetAddress(arr[i]);
}
msg.addRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
// 後面的BodyPart將加入到此處創建的Multipart中
Multipart mp = new MimeMultipart();
// 附件操作
if (filepath != null && filepath.size() > 0) {
for (String filename : filepath) {
MimeBodyPart mbp = new MimeBodyPart();
// 得到數據源
FileDataSource fds = new FileDataSource(filename);
// 得到附件本身並至入BodyPart
mbp.setDataHandler(new DataHandler(fds));
// 得到文件名同樣至入BodyPart
mbp.setFileName(fds.getName());
mp.addBodyPart(mbp);
}
MimeBodyPart mbp = new MimeBodyPart();
mbp.setText(body);
mp.addBodyPart(mbp);
// 移走集合中的所有元素
filepath.clear();
// Multipart加入到信件
msg.setContent(mp);
} else {
// 設置郵件正文
msg.setText(body);
}
// 設置信件頭的發送日期
msg.setSentDate(new Date());
msg.saveChanges();
// 發送信件
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(msg,
msg.getRecipients(Message.RecipientType.TO));
transport.close();
return true;
} else {
System.out.println("None receiver!");
return false;
}
} else {
System.out.println("None receiver!");
return false;
}
}
public static void main(String[] args) throws AddressException,
UnsupportedEncodingException, MessagingException {
List<String> filepath = new ArrayList<>();
filepath.add("E:\\Resources\\Development Test\\AuctionServer\\src\\main\\java\\com\\auction\\\\IBaseDAO.java");
filepath.add("E:\\Resources\\Development Test\\AuctionServer\\src\\main\\java\\com\\auction\\\\IMemcacheDAO.java");
sendMail("000000@qq.com,[email protected]", "注冊信息郵件", "注冊郵件,有附件",
filepath);
}
}
Ⅱ java程序自動發送郵件,使用的SMTP協議,如何能將發件人改成中文昵稱而不是注冊的那些字母。部分程序如下
String mailTo = "**@163.com";
String mailTo = "張三<**@163.com>";
Ⅲ 有無大佬用過simplejavamail,java項目寫郵件的。
packagecom.openwan.util;
importorg.simplejavamail.email.Email;
importorg.simplejavamail.email.EmailBuilder;
importorg.simplejavamail.mailer.MailerBuilder;
publicclassSimpleJavaMail{
publicstaticvoidmain(String[]args){
Emailemail=EmailBuilder.startingBlank()
磨凱.from("發件人名稱","發件人郵箱")
.to("名字","收瞎頌喚件人地址")
.to("名字","收件人地址")
.withSubject("我是郵箱標題!")
.withPlainText("郵件內容")
.buildEmail();
//開啟郵箱服務,POP3/SMTP/IMAP
櫻改MailerBuilder
.withSMTPServer("smtp.163.com",25,
"發件人郵箱","發件人smtp服務口令密碼")
.buildMailer()
.sendMail(email);
}
}
//pom文件引入mail
<dependency>
<groupId>org.simplejavamail</groupId>
<artifactId>simple-java-mail</artifactId>
<version>5.0.1</version>
</dependency>
兄弟記得給分呦~
Ⅳ javamail發送郵件報錯,求指教!
發郵件之前銷旅加上
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);
設置郵件接收協議
Ⅳ java如何發送匿名郵件
任何一個人都可以連接到SMTP伺服器發送郵件,SMTP服襪神務器大部分不檢查信息的真實性.你可以隨便寫你喜歡畢冊用的名字,
你手好宏也可能會收到來自[email protected]的郵件,請你去參加白宮前草坪上的聚會.
也就是說,發件人的名字是你自己寫進去的.你可以隨便寫.發件人的地址也是隨便寫的.所以你自己寫的郵件程序,就相當於匿名的.不過你可能發不出去,另外一邊的POP3伺服器可能會把你的郵件當成垃圾郵件,直接過慮掉.
Ⅵ javamail能隱藏發件人地址或者不要發件人嗎
qq郵箱發送郵件可以隱藏發件人的信息。具體做法如下:
我們在用QQ郵箱給人寫信的時候,前面一看就知道是自己的QQ號碼了,如果一些人不懷好意想加我們為QQ好友,那更令人頭疼。那麼要如何做,才能讓你在用QQ郵箱寫郵件的時候,不讓對方看到你的QQ號碼呢。
1、登陸QQ,確保州差QQ登陸成功。
2、點擊QQ郵箱圖標,進入你的QQ郵箱首頁。
3、點擊寫信,隨便找一個好友給她寫一封亂七八糟的信,當然,只是為了好玩,但不要寫過分的話,否則可能真的會嚇壞她。
4、寫好了後,把界面往下拉,就會看到下面有一個發件人的簡孝信息,也會看到發件人的信息旁邊有一個向下拉的箭頭,我們點擊一下。
5、點擊出來後,就會有一個以你QQ號開頭的郵箱地址,還有一個就是非QQ號碼出現的郵箱了,點擊一下非QQ號碼出現攔跡稿的那個郵箱,那麼你就是以這個郵箱地址發出去了郵件哦
6、這個QQ郵箱是foxmail名稱,當然,你得事先要把這個郵箱開始,並點擊開始使用,才可以在這里選擇使用的。
Ⅶ javamail發送郵件需要發件人和驗證人一致才能發送,那不是只能用一個郵箱發送
跟隨屏幕指示完成設置。(要創建一個 Palm 帳戶廳雹,森伏碼你需要填入一個電子郵箱) 例如,當你讀完一封郵件,做個後退手勢就此哪能關閉 郵件並且回到你的收件箱。
Ⅷ 網易郵箱如何設置顯示發件人姓名或昵稱
網易郵箱如何設置族派顯示發件人姓名或昵稱呢?下面我來教大家。
首先,我們打開我們電腦上面的瀏覽器,然後輸入網易郵箱進行搜索,彈出的界面,我們點擊網易郵箱網站;
彈出的界面,我們輸入賬號和密碼,然後點擊咐液登錄;
進入界面後,我們點擊通訊錄;
進入之後,我們就可以看到很多聯系人了,我們選擇其中一個,然後點擊右邊的編輯;
彈出的界面,我們輸入姓名,然後點擊確定就可以了,之後這個人發來的郵件衡穗物就會顯示我們更改的姓名了。
Ⅸ 別人收到我發的郵件,發件人怎麼沒有我的昵稱
如果您希望收件箱里顯示通訊錄里設置的姓名培稿鋒,設置方式如下:
一、登錄郵箱後,點擊右上角「設置」-「參數設置」-「郵件列表」-「發件人顯示」中配晌選擇「優先顯示通訊錄中的備注名」,點擊「確定」。
二、打開通訊敬態錄,點擊要修改聯系人的「名字」或「郵件地址」,再點擊上方「編輯聯系人」,輸入對方發郵件來時所顯示的姓名,點擊「保存」。
這樣,收件箱里發件人的名字就顯示您所編輯的名字了。
Ⅹ 郵件發件人顯示真名怎麼辦
發郵件時要讓對方老慶斗看到自己的真實姓名,可以在郵箱里設置一下賬戶昵稱,把昵稱改成個人的真實姓名即可,如QQ郵箱的設置方法如下:
在電腦上登錄好的QQ主界面上方,點擊QQ郵箱的圖標;
進侍磨入QQ郵箱,點擊左上方郵箱標志旁邊的「設置」按鈕;
打開「郵箱設置」界面,在導航欄里點擊「賬戶」,在「默認賬戶昵稱」差伍一欄里,輸入個人的真實姓名,然後點擊「保存更改」,這樣一來,在個人發出的所有郵件,發件人里都會顯示個人的真實姓名,對方自然就能看到了。