使用Spring简化JavaMail
如果你用過用javax.mail來寫email發(fā)送,你就會發(fā)現(xiàn)這個包寫得如此繁雜。
import java.util.Date;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
public class JavaMailDemo {
??? public static void main(String[] args) {
??????? Properties p =new Properties();
??????? //首先指定發(fā)送郵件的主機(jī)
??????? String host="127.0.0.1";
??????? p.put("mail.smtp.host", host);
??????? //得到發(fā)送郵件的sessoin
??????? Session session =Session.getDefaultInstance(p);
??????? //準(zhǔn)備一封電子郵件
??????? Message ms =new MimeMessage(session);
??????? Address address =null;
??????? Address to=null; //收件人地址
??????? try {
??????????? address=new InternetAddress("pengzj");
??????? ms.setFrom(address);
??????? to=new InternetAddress("zhouzq@gzaccp.com");
??????? ms.setRecipient(Message.RecipientType.TO, to);
??????? ms.setSubject("javamail測試2");
??????? ms.setSentDate(new Date());
??????? ms.setText("你好,這是javamail發(fā)送的電子郵件2");
??????? Transport t= session.getTransport("smtp");
??????? t.send(ms);
??????? System.out.println("郵件已發(fā)送");
??????? } catch (AddressException e) {
??????????? // TODO Auto-generated catch block
??????????? e.printStackTrace();
??????? } catch (MessagingException e) {
??????????? // TODO Auto-generated catch block
??????????? e.printStackTrace();
??????? }
??? }
}
一個地址都要如此封裝,真是麻煩。
Spring的初衷就是要讓JavaEE技術(shù)變得容易使用。
那么它對JavaMail的支持也是理所當(dāng)然的了。下面我們來看看如何使用Spring+Javamail.
首先配置好spring的application.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
??? xmlns="http://www.springframework.org/schema/beans"
??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
??? xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host">
<value>127.0.0.1</value>
</property>
</bean>
</beans>
發(fā)送郵件的代碼變得如此簡單:
package com.pengzj.mail;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
public class MyMailSender {
??? public static void main(String[] args) {
??????? ApplicationContext ctx =new ClassPathXmlApplicationContext("applicationContext.xml");
??????? JavaMailSender sender=(JavaMailSender)ctx.getBean("mailSender");
??????? SimpleMailMessage sms =new SimpleMailMessage();
??????? sms.setFrom("pengzj@gzaccp.com");
??????? sms.setTo("zhouzq@gzaccp.com");
??????? sms.setText("這是用spring發(fā)送的電子郵件");
??????? sms.setSubject("how are you!");
??????? sender.send(sms);
??? }
}
轉(zhuǎn)載于:https://blog.51cto.com/cnjava/530438
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的使用Spring简化JavaMail的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。