1. 程式人生 > >記錄一個格式:發郵件時顯示郵件聯絡人名稱(暱稱)

記錄一個格式:發郵件時顯示郵件聯絡人名稱(暱稱)

一直在用javax.mail發郵件,但是我的郵件顯示的都是郵件地址,像其它服務郵箱,京東,淘寶之類的都顯示的是名稱。很奇怪。

百度之,網上沒有類似。

百度之好久,發現有人說是需要用固定的格式填充From屬性。

// 設定收件人,寄件人
String nick = javax.mail.internet.MimeUtility.encodeText("顯示名稱");
messageHelper.setFrom(new InternetAddress(nick + " <[email protected]>"));
messageHelper.setTo(toMail);
messageHelper.setSubject(subject);

這樣即可,前面的名稱就會正常顯示出來。

附發郵件的程式碼:

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.5.0-b01</version>
        </dependency>

這是以前寫的程式碼,原始碼已經找不到的,只有jar還在,現反編譯出來,儲存下。

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler) // package myEmail; import java.util.Properties; public class MailSenderInfo { private String mailServerHost; private String mailServerPort = "25"; 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 MailSenderInfo() { } public Properties getProperties() { Properties p = new Properties(); p.put("mail.smtp.host", this.mailServerHost); p.put("mail.smtp.port", this.mailServerPort); p.put("mail.smtp.auth", this.validate?"true":"false"); return p; } public String getMailServerHost() { return this.mailServerHost; } public void setMailServerHost(String mailServerHost) { this.mailServerHost = mailServerHost; } public String getMailServerPort() { return this.mailServerPort; } public void setMailServerPort(String mailServerPort) { this.mailServerPort = mailServerPort; } public boolean isValidate() { return this.validate; } public void setValidate(boolean validate) { this.validate = validate; } public String[] getAttachFileNames() { return this.attachFileNames; } public void setAttachFileNames(String[] fileNames) { this.attachFileNames = fileNames; } public String getFromAddress() { return this.fromAddress; } public void setFromAddress(String fromAddress) { this.fromAddress = fromAddress; } public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } public String getToAddress() { return this.toAddress; } public void setToAddress(String toAddress) { this.toAddress = toAddress; } public String getUserName() { return this.userName; } public void setUserName(String userName) { this.userName = userName; } public String getSubject() { return this.subject; } public void setSubject(String subject) { this.subject = subject; } public String getContent() { return this.content; } public void setContent(String textContent) { this.content = textContent; } } // // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package myEmail; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; public class MyAuthenticator extends Authenticator { private String username; private String password; public MyAuthenticator(String username, String password) { this.username = username; this.password = password; } protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(this.username, this.password); } String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } } // // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package myEmail; import java.util.Date; import java.util.Properties; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.Message.RecipientType; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import myEmail.MailSenderInfo; import myEmail.MyAuthenticator; public class SimpleMailSender { public SimpleMailSender() { } public boolean sendTextMail(MailSenderInfo mailInfo) { MyAuthenticator authenticator = null; Properties pro = mailInfo.getProperties(); if(mailInfo.isValidate()) { authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); } Session sendMailSession = Session.getDefaultInstance(pro, authenticator); try { MimeMessage ex = new MimeMessage(sendMailSession); InternetAddress from = new InternetAddress(mailInfo.getFromAddress()); ex.setFrom(from); InternetAddress to = new InternetAddress(mailInfo.getToAddress()); ex.setRecipient(RecipientType.TO, to); ex.setSubject(mailInfo.getSubject()); ex.setSentDate(new Date()); String mailContent = mailInfo.getContent(); ex.setText(mailContent); Transport.send(ex); return true; } catch (MessagingException var9) { var9.printStackTrace(); return false; } } public boolean sendHtmlMail(MailSenderInfo mailInfo) { MyAuthenticator authenticator = null; Properties pro = mailInfo.getProperties(); if(mailInfo.isValidate()) { authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); } Session sendMailSession = Session.getDefaultInstance(pro, authenticator); try { MimeMessage ex = new MimeMessage(sendMailSession); InternetAddress from = new InternetAddress(mailInfo.getFromAddress()); ex.setFrom(from); InternetAddress to = new InternetAddress(mailInfo.getToAddress()); ex.setRecipient(RecipientType.TO, to); ex.setSubject(mailInfo.getSubject()); ex.setSentDate(new Date()); MimeMultipart mainPart = new MimeMultipart(); MimeBodyPart html = new MimeBodyPart(); html.setContent(mailInfo.getContent(), "text/html; charset=utf-8"); mainPart.addBodyPart(html); ex.setContent(mainPart); Transport.send(ex); return true; } catch (MessagingException var10) { var10.printStackTrace(); return false; } } } package mail; import myEmail.MailSenderInfo; import myEmail.SimpleMailSender; import java.io.UnsupportedEncodingException; public class SendEmail { public static void send(String email, String content) { // 這個類主要是設定郵件 MailSenderInfo mailInfo = new MailSenderInfo(); mailInfo.setMailServerHost("smtp.163.com"); mailInfo.setMailServerPort("25"); mailInfo.setValidate(true); mailInfo.setUserName("[email protected]"); mailInfo.setPassword("password");// 您的郵箱密碼 String nick = ""; try { nick = javax.mail.internet.MimeUtility.encodeText("CSDN服務賬號"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } mailInfo.setFromAddress(nick + "<[email protected]>"); mailInfo.setToAddress(email); mailInfo.setSubject("計算結果"); mailInfo.setContent(content + "\n此郵件為系統自動傳送,回覆無效!"); // 這個類主要來發送郵件 SimpleMailSender sms = new SimpleMailSender(); sms.sendTextMail(mailInfo);// 傳送文體格式 // sms.sendHtmlMail(mailInfo);// 傳送html格式 } public static void main(String[] args){ String content="我是一封測試郵件"; send("[email protected]",content); } }

相關推薦

記錄一個格式郵件顯示郵件聯絡人名稱

一直在用javax.mail發郵件,但是我的郵件顯示的都是郵件地址,像其它服務郵箱,京東,淘寶之類的都顯示的是名稱。很奇怪。 百度之,網上沒有類似。 百度之好久,發現有人說是需要用固定的格式填充From屬性。 // 設定收件人,寄件人 String n

記錄一個PHP安裝redis擴充套件的問題

安裝過程:https://www.cnblogs.com/pengyunjing/p/8688320.html 由於我之前安裝過該擴充套件,重新安裝時沒有執行make clean命令,所以安裝好出現了下面的錯誤: PHP Warning:  PHP Startup: Unable to load

記錄一個錯誤COM程序外伺服器的啟動

在完成所有的程序外原始碼編輯後,生成了相應的.exe檔案。根據書上說“COM解決的辦法是維護一個被登記的類廠的內部表格,根據客戶請求的CLISD得到相應的類廠。若找不到相應類廠,COM將在登錄檔中查詢並啟動相應的EXE,此EXE可呼叫COM函式CoRegiste

一個嘗試做正事不看手機,少看手機

最近,發現自己總是在看手機,浪費了很多時間,決定努力在做事情(上課、作業、程式碼等)時不分心看手機。 開始: 2018年 11/5  玩手機時間很長。 11/6  開始記錄時間, 玩手機時間  約150 分鐘 11/7 玩手機 約70分鐘。 主要原因是上午一直在上實

利用Centos 7內建的 crontab 進行系統的定時關機 格式 * * * * * command 分 日 月 周 命令 1 2 3 #編輯定時任務 crontab -e

利用Centos 7內建的 crontab 進行系統的定時關機 格式: * * * * * command 分 時 日 月 周 命令123#編輯定時任務: crontab -e #檢

ffdshow神奇的功能視訊播放顯示運動向量和QP

FFDShow可以稱得上是全能的解碼、編碼器.最初FFDShow只是mpeg視訊解碼器,不過現在他能做到的遠不止於此.它能夠解碼的視訊格式已經遠遠超出了mpeg4的範圍,包括indeo video,WMV,mpeg2等等.同時,它也提供了豐富的加工處理選項,可以銳化畫面,調

ajax非同步請求關鍵字提示適用於註冊使用者顯示已註冊使用者,避免重複

1.前端程式碼 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>staff_insert.html</title&

問題git處理中文名稱時候顯示為編碼形式已解決

問題描述: Untracked files: (use "git add <file>..." to include in what will be committed) static/README.md "\350\207\252\346\2

Java虛擬機器JVM原始碼JDK10對Java虛擬機器執行資料區的劃分詳細圖解

Java虛擬機器執行時資料區 為什麼要研究這個,因為JDK都已經發布到10了,必須要更新自己對Java虛擬機器新的認識。 一、執行時資料區的劃分 1.1 官方劃分 關於JDK10對執行時資料區的劃分,在官方文件說的非常清楚。 學習技術,一定要學會看第一手資料。 Ja

python自動化測試開發當frame/iframe沒有可用的id或者name屬性,多表單frame/iframe如何進行切換

在設計自動化測試指令碼時,經常會有多表單(frame/iframe)需要切換,否則無法定位到表單上的元素,在python中使用switch_to.frame()方法,具體用法如下 1、switch_to.frame()預設直接調取表單的id活name屬性。 示例: dr

java中傳送郵件,如何設定件人名稱

msg.setFrom (new InternetAddress ("[email protected]", "這裡是需要的暱稱", "UTF-8")); msg.setSubject (subject); msg.setText (content); msg.ad

使用者登入三次機會並且每次輸錯顯示剩餘登入機會用到字串格式化。

i=0 username ='機智姐' password ='123' while i< 3: name =input('請輸入賬號: ') pwd =int (input('請輸入密碼: ')) if username == name and password ==pwd

foxmail郵件只能顯示郵件頭,不能顯示內容

@echo off  pause  echo 正在清理系統垃圾檔案,請稍等......  del /f /s /q %systemdrive%\*.tmp  del /f /s /q %systemdrive%\*._mp  del /f /s /q %systemdrive%\*.log  del /f /

k-d tree演算法的研究看這篇博文,我主要的關注點是特徵匹配,剔除誤匹配點的方法

先前寫了一篇文章《SIFT演算法研究》講了講SIFT特徵具體是如何檢測和描述的,其中也提到了SIFT常見的一個用途就是物體識別,物體識別的過程如下圖所示: 如上圖(a),我們先對待識別的物體的影象進行SIFT特徵點的檢測和特徵點的描述,然後得到了SIFT特徵點集合。接下來生成物體目標描述要做的就是

iOS 如何讓UITableView顯示自動滾動到底部不閃動

最近在研究XMPP即時通訊,在從好友列表進入聊天頁面的時候需要UITableView(訊息列表)自動滾動到底部,如下所示: 剛開始試了兩種方法, 第一種是在viewDidAppear中設定tableView(scrollView)的contentOffs

Java高並程序設計學習筆記JDK並發包(各種同步控制工具的使用、並容器及典型源碼分析Hashmap等)

pin 指定 timeunit executors .sh 部分 現象 arr span 轉自:https://blog.csdn.net/dataiyangu/article/details/86491786#2__696 1. 各種同步控制工具的使用1.1. R

JavaScript設計模式一、面向對象編程第二節

得到 調用 帶來 方式 get 特權 style 方法封裝 面向對象 一、封裝 面向對象編程思想其中的一個特點就是封裝,通俗的講法就是把需要的功能方向在一個對象裏。遺憾的是,對於JS這種解釋性的弱類型語言沒有經典強類型語言中那樣通過class等關鍵字實現類的封裝方法,j

ActiveMQ19Consumer高級特性之獨有消費者Exclusive Consumer

consumer高級特性之獨有消費者(exclusive consumer)一、簡介Queue中的消息是按照順序被分發到consumers的。然而,當你有多個consumers同時從相同的queue中提取消息時,你將失去這個保證。因為這些消息是被多個線程並發的處理。有的時候,保證消息按照順序處理是很重要的。如

ActiveMQ20Consumer高級特性之重新投遞Redelivery Policy

jms activemq 重新投遞 一、簡介ActiveMQ在接收消息的Client有以下幾種操作的時候,需要重新傳遞消息: 1:Client用了transactions,且在session中調用了rollback() 2:Client用了transactions,且在調用commit()之前關閉

JavaScript設計模式一、面向對象編程第三節

設置 style 擁有 ray 進行 如果 eat gree 而在 一、繼承 js並沒有繼承這一個現有的機制,所以我們所說的繼承是通過JS本身的機制去實現的。 1、類式繼承 1 // 類式繼承 2 3 // 父類 4 function SuperClas