基於java spring的郵件群發簡單方式
使用環境
準備工作
- 使用maven將spring、mybatis、mysql、java mail所需要的包匯入,具體匯入的包見demo的pom.xml
- 申請一個郵箱賬號(若有則跳過)
- 對於qq郵箱,需要申請授權碼,路徑:設定->賬戶->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務->開啟POP3/SMTP服務
- 在mysql中新建表user,並將想要傳送的郵箱引數填入,表格式如下
id name
基礎配置
spring、mybatis
詳細配置見demo
java mail
使用@PropertySource和@Value將mail.properties的內容讀取出來。
@Configuration @PropertySource("mail.properties") public class MailConfig { @Value("${mail.host}") private String mailHost; @Value("${mail.port}") private int mailPort; @Value("${mail.username}") private String username; @Value("${mail.password}") private String password; @Value("${mail.auth}") private String auth; @Value("${mail.timeout}") private String time0ut; @Value("${mail.starttls.enable}") private String starttlsEnable; @Value("${mail.socketFactory.fallback}") private String socketFactoryFallback; @Value("${mail.socketFactory.class}") private String socketFactoryClass; ......
將上面讀取的內容新增到mailsender中進行配置
@Bean public MailSender mailSender(Environment env){ JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setHost(mailHost); mailSender.setPort(Integer.valueOf(mailPort)); mailSender.setUsername(username); mailSender.setPassword(password); mailSender.setDefaultEncoding("utf-8"); Properties jpro = new Properties(); jpro.setProperty("mail.smtp.auth", auth); jpro.setProperty("mail.smtp.timeout", time0ut); jpro.setProperty("mail.smtp.starttls.enable", starttlsEnable); jpro.setProperty("mail.smtp.socketFactory.port", String.valueOf(mailPort)); jpro.setProperty("mail.smtp.socketFactory.fallback", socketFactoryFallback); jpro.setProperty("mail.smtp.socketFactory.class", socketFactoryClass); mailSender.setJavaMailProperties(jpro); return mailSender; }
這樣java mail的基礎配置就基本完成
傳送郵件
目標是傳送基於html的郵件,這樣我們可以定製出各種各樣的新鮮樣式
讀取html檔案
為了方便筆者直接使用了apache的commons-io讀取檔案內容String text = ""; File file = ResourceUtils.getFile("classpath:mail.html"); text = FileUtils.readFileToString(file, "utf-8");
讀取資料庫使用者列表
使用mybatis讀取mysql中的email列表實現群發功能,具體操作見demo
建立郵件
郵件至少由4個部分組成,分別是傳送者,接受者,郵件名稱,內容,可用以下引數配置MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8"); helper.setFrom(mailUserName); helper.setTo(email); helper.setSubject("DEMO"); helper.setText(text, true); //true可以顯示html格式的文字
- 傳送郵件
最後使用mailSender.send(message);
傳送郵件即可。
原始碼下載
- csdn: http://download.csdn.net/detail/will4906/9880292
- github: https://github.com/will4906/MailGroup
讚賞
讚賞 | |
微信 | 支付寶 |
相關文章
- Java郵件群發(web版)JavaWeb
- 群發郵件
- 用Gmail做QQ郵件群發的一種方式AI
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- JavaMail:java使用QQ郵箱傳送郵件簡單版。JavaAI
- 實現簡單的郵件收發器(十二)
- PHP實現郵件群發機薦PHP
- 一個簡易郵件群發軟體設計與實現
- 簡單郵件系統程式
- 使用System.Net.Mail實現郵件群發AI
- 直接用通訊錄Excel群發電子郵件Excel
- 基於Python的郵件檢測工具Python
- 利用ASP+JMAIL進行郵件群發的新思路 (轉)AI
- 一個讀取Gmail郵件的簡單程式AI
- Zmail-簡單易用的python郵件模組AIPython
- 郵件開發:Javamail、JAF簡介JavaAI
- 基於spring框架的apache shiro簡單整合Spring框架Apache
- Spring基於XML方式的使用SpringXML
- 直接用通訊錄Excel群發電子郵件(轉)Excel
- 基於jsp和servlet簡單的java web開發(idea)JSServletJavaWebIdea
- 從零開始學Python(九):搭建一個基於SMTP的簡單郵件預警系統Python
- 郵件開發:接收解析郵件
- 基於vue的簡單流程圖開發Vue流程圖
- java網路程式設計三:基於SMTP的郵件傳送客戶端Java程式設計客戶端
- 發郵件的例子
- Java郵件(JavaMail)JavaAI
- 簡單高可配的技術週報郵件推送工具
- 3 個很酷的基於文字的郵件客戶端客戶端
- 郵件開發:複雜郵件的一個示例
- 使用java語言基於SMTP協議手寫郵件客戶端Java協議客戶端
- python接收郵件的幾種方式Python
- 兩種go傳送郵件的方式Go
- 共享電子郵件的運作方式
- kettle 實用功能之三 ---- 使用 kettle 群發動態內容的郵件。
- Spring中基於XML方式的AOP操作SpringXML
- Spring AOP基於xml的方式實現SpringXML
- python實現基於smtp傳送郵件Python
- shell發郵件