當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
使用Spring发送带附件的电子邮件(站内和站外传送)
生活随笔
收集整理的這篇文章主要介紹了
使用Spring发送带附件的电子邮件(站内和站外传送)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.使用Spring發送帶附件的電子郵件
<?xml version="1.0" encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="192.168.8.71"></property><!-- 服務器 --><property name="port" value="25"></property><!-- 端口 --><property name="username" value="wxk"></property><!-- 用戶名 --><property name="password" value="wxk"></property><!-- 密碼 --><property name="protocol" value="smtp" ></property><!-- 協議 --><property name="defaultEncoding" value="utf-8"></property><!-- 默認編碼 --><property name="javaMailProperties"><props><!-- 設置SMTP服務器需要用戶驗證 --><prop key="mail.smtp.auth">true</prop></props></property></bean><bean id="mailWithAttachment" class="cn.bdqn.MailWithAttachment"><property name="mailSender" ref="mailSender"></property></bean></beans> 大配置 log4j.rootLogger=info,console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n log4j.properties package cn.bdqn;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class MailTest {public static void main(String[] args){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");try{MailWithAttachment mailWithAttach = (MailWithAttachment)context.getBean("mailWithAttachment");mailWithAttach.send();}catch(Exception e){System.out.print(e.toString());}} } 測試類 package cn.bdqn;import java.io.IOException;import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility;import org.springframework.core.io.ClassPathResource; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper;public class MailWithAttachment {private JavaMailSender mailSender; //必須使用 JavaMailSenderpublic void setMailSender(JavaMailSender mailSender) {this.mailSender = mailSender;}public void send() throws MessagingException,IOException{MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");helper.setFrom("wxk@mail.com");helper.setTo("wj@mail.com");helper.setSubject("等待是種執著");helper.setText("青鳥的歲月似流年,又有多少青春如風逝去,不要讓這座城市只留下無盡的回憶,卻沒有留下我們一起走過的青春," +"青春不是生命的一瞬,而是一種自然的心境!");//添加附件1ClassPathResource file1 = new ClassPathResource("/cn/bdqn/attachfiles/QQ圖片20161214191111.jpg");helper.addAttachment(file1.getFilename(), file1.getFile());//添加附件2:附件的文件名為中文時,需要對文件名進行編碼轉換,解決亂碼問題ClassPathResource file2 = new ClassPathResource("/cn/bdqn/attachfiles/附件測試文件.doc");helper.addAttachment(MimeUtility.encodeWord(file2.getFilename()),file2.getFile());mailSender.send(mimeMessage);} } MailWithAttachment上傳郵件成功
2.使用Spring發送簡單郵件
大配置和log4j還要架包同上省略
package cn.bdqn;import org.springframework.mail.MailSender; import org.springframework.mail.SimpleMailMessage;public class Mail {private MailSender mailSender;public void setMailSender(MailSender mailSender) {this.mailSender = mailSender;}public void send(){SimpleMailMessage message = new SimpleMailMessage();message.setFrom("wxk@mail.com");message.setTo("wj@mail.com");message.setSubject("會議通知fsb發布");message.setText("jerry你好!請于明天下午16:00 準時到B01會議室召開技術討論會。");mailSender.send(message);} } Mail package cn.bdqn;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class MailTest {public static void main(String[] args){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");/*測試簡單郵件*/Mail mail = (Mail)context.getBean("mail");mail.send();} } MailTest3.使用Spring郵件服務和FreeMarker模板技術發送郵件
大配置和log4j還要架包同上省略
package cn.bdqn.pojo;public class Mail {private String to;private String subject;private String content;public String getTo() {return to;}public void setTo(String to) {this.to = to;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}} 實體層 package cn.bdqn.service;import cn.bdqn.pojo.Mail;public class LeaveService {private MailService mailService;public void setMailService(MailService mailService) {this.mailService = mailService;}public void updateLeave(){//省略審批請假申請//查詢數據庫獲取相關信息String approver = "張來";Mail mail = new Mail();mail.setTo("wj@mail.com");mail.setSubject("請假流程確認郵件");StringBuffer sb = new StringBuffer();sb.append("<html><head>");sb.append("<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">");sb.append("<head><body>");sb.append("<font color='blue' size='4' face='Arial'>");sb.append("OA系統溫馨提示:</font><br/><br/>");sb.append(" ");sb.append("在OA系統中,您提交的“請假流程” "+ approver +" 已經審批完成,點擊如下鏈接可登陸系統查看流程,謝謝。" +"如果登錄時忘記密碼,可以在網站登錄頁找回。<br/>");sb.append("<br/><br/> <a href='http://www.jboa.com'>http://www.jboa.com</a>");sb.append("<br/><br/> -----本郵件為系統自動發出,請勿回復-----");mail.setContent(sb.toString());try{mailService.send(mail);}catch(Exception e){e.printStackTrace();}}} LeaveService package cn.bdqn.service;import java.io.IOException;import javax.mail.MessagingException; import javax.mail.internet.MimeMessage;import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper;import cn.bdqn.pojo.Mail;public class MailService {private JavaMailSender mailSender; //必須使用 JavaMailSenderpublic void setMailSender(JavaMailSender mailSender) {this.mailSender = mailSender;}public void send(Mail mail) throws MessagingException,IOException{MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");helper.setFrom("wxk@mail.com");helper.setTo(mail.getTo());helper.setSubject(mail.getSubject());helper.setText(mail.getContent(),true);mailSender.send(mimeMessage);System.out.print("發送完成!");} } MailService package cn.bdqn;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.bdqn.service.LeaveService;public class MailTest {public static void main(String[] args){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");LeaveService service = (LeaveService)context.getBean("leaveService");service.updateLeave();} } MailTest4.最簡單的站內傳送Email上傳,不需要大配置、log4j、架包
package cn.happy.mailjames;import javax.mail.Authenticator; import javax.mail.PasswordAuthentication;public class EmailAuthenticator extends Authenticator {private String username; private String userpass;public void setUsername(String username) {this.username = username;}public void setUserpass(String userpass) {this.userpass = userpass;}public EmailAuthenticator() {}public EmailAuthenticator(String username, String userpass) {this.username = username;this.userpass = userpass;}public PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication(username,userpass);}} 實體層 package cn.happy.mailjames;import java.util.Date; import java.util.Properties;import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage;public class Mail {private String mailServer,from,to,mailSubject,mailContent;private String username,password;public Mail(){//設置郵件信息//進行認證登錄的用戶名username="wxk@mail.com";//認證密碼password="wxk";//認證的郵箱對應的郵件服務器mailServer="192.168.8.71";//發件人信息from="wxk";//收件人信息to="wj@mail.com";//郵件標題mailSubject="記錄成長的每一個腳印,寫下漫長的程序人生";//郵件內容mailContent="這是一封測試郵件!如有雷同,純屬不可能";}//設置郵件服務器@SuppressWarnings("static-access") public void send(){Properties prop=System.getProperties();//指定郵件serverprop.put("mail.smtp.host", mailServer);//是否開啟認證prop.put("mail.smtp.auth", "true");//smtp協議的prop.put("mail.smtp.port", "25");//產生Session服務EmailAuthenticator mailauth=new EmailAuthenticator(username, password);Session mailSession=Session.getInstance(prop,(Authenticator)mailauth);try {//封裝Message對象Message message=new MimeMessage(mailSession);message.setFrom(new InternetAddress(from)); //發件人message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));//收件人 message.setSubject(mailSubject);//設置內容(設置字符集處理亂碼問題)message.setContent(mailContent,"text/html;charset=gbk");message.setSentDate(new Date());//創建Transport實例,發送郵件Transport tran=mailSession.getTransport("smtp");tran.send(message,message.getAllRecipients());tran.close();} catch (Exception e) {e.printStackTrace();}} } Mail package cn.happy.mailjames;public class Test {public static void main(String[] args) {Mail mail=new Mail();mail.send();System.out.println("success!");}} 測試類?
轉載于:https://www.cnblogs.com/WuXuanKun/p/6186997.html
總結
以上是生活随笔為你收集整理的使用Spring发送带附件的电子邮件(站内和站外传送)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手把手教你用好LINQ to SQL(1
- 下一篇: 如何进入交换机配置命令窗口