spring+mail+maven(spring 发送邮件)

来源:互联网 发布:美橙互联 域名转出 编辑:程序博客网 时间:2024/05/31 19:55

目前在网易邮箱测试通过,QQ和其他邮箱存在问题,注意必须先在邮箱里开启smtp功能。

1.用maven引入jar:

spring相关jar:

<dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-webmvc</artifactId>  <version>3.2.6.RELEASE</version>  </dependency>  <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-orm</artifactId>  <version>3.2.6.RELEASE</version>  </dependency><dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-context-support</artifactId>  <version>3.2.6.RELEASE</version> </dependency>

mail相关jar:

<dependency>      <groupId>javax.mail</groupId>      <artifactId>mail</artifactId>  <version>1.4.7</version>  </dependency>

2.spring配置文件bean.xml

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">          <property name="locations">              <list>                  <value>classpath:mail.properties</value>              </list>          </property>      </bean>        <!-- 邮件发送器 163  -->  <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">      <property name="host" value="${mail.host}" />          <property name="username" value="${mail.username}" />          <property name="password" value="${mail.password}" />          <property name="defaultEncoding" value="UTF-8"></property>          <property name="javaMailProperties">              <props>                  <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>                  <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>             </props>          </property>      </bean>         <!--  邮件发送器 gmail -->   <!-- <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">            <property name="host" value="${mail.host}" />          <property name="username" value="${mail.username}" />          <property name="password" value="${mail.password}" />          <property name="defaultEncoding" value="UTF-8"></property>          <property name="javaMailProperties">                <props>                    <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>                  <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>                  <prop key="mail.smtp.port">465</prop>                    <prop key="mail.smtp.socketFactory.port">465</prop>                    <prop key="mail.smtp.socketFactory.fallback">false</prop>                    <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>                </props>            </property>        </bean> -->

3.mail.properties配置文件:

#####    163      ###mail.from=lifeng_it@163.commail.host=smtp.163.commail.password=****mail.smtp.auth=truemail.smtp.timeout=25000mail.username=lifeng_it@163.com#####    qq      ####mail.from=729088240@qq.com#mail.host=smtp.qq.com#mail.password=****#mail.smtp.auth=true#mail.smtp.timeout=2500000#mail.username=729088240@qq.com###### gmail  ###########mail.from=wzqdemo@163.com  #mail.host=smtp.gmail.com  #mail.password=********  #mail.smtp.auth=true  #mail.smtp.timeout=25000  #mail.username=wzqdemo@gmail.com 

4.MailBean实体类,set。get略:

public class MailBean {private String from;  private String fromName;  private String[] toEmails;      private String subject;    private String context;


5.编写核心类:

package com.lifeng.shiro.jmail;import java.io.UnsupportedEncodingException;import javax.mail.MessagingException;import javax.mail.internet.MimeMessage;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.mail.javamail.JavaMailSenderImpl;import org.springframework.mail.javamail.MimeMessageHelper;import org.springframework.stereotype.Service;@Servicepublic class MailSenderService {@Autowiredprivate JavaMailSenderImpl javaMailSenderImpl;/** * 创建MimeMessage * @param mailBean * @return * @throws MessagingException  * @throws UnsupportedEncodingException  */public MimeMessage createMimeMessage(MailBean mailBean) throws MessagingException, UnsupportedEncodingException{MimeMessage mimeMessage = javaMailSenderImpl.createMimeMessage();MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");messageHelper.setFrom(mailBean.getFrom(), mailBean.getFromName()); messageHelper.setSubject(mailBean.getSubject());  messageHelper.setTo(mailBean.getToEmails());  messageHelper.setText(mailBean.getContext(), true); // html: true return mimeMessage;}public void sendMail(MailBean mailBean) throws UnsupportedEncodingException, MessagingException{MimeMessage msg = createMimeMessage(mailBean);javaMailSenderImpl.send(msg);}}

6.测试类:

package com.lifeng.shiro.jmail;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class MailSenderUtil {/** * 参考:http://wang3065.iteye.com/blog/1718381 * @param args * @throws Exception */public static void main(String[] args) throws Exception{ApplicationContext ac = new ClassPathXmlApplicationContext("spring-mail.xml");MailSenderService mailSenderService = (MailSenderService) ac.getBean("mailSenderService");MailBean mailBean = new MailBean();mailBean.setFrom("lifeng_it@163.com");mailBean.setFromName("XXX");mailBean.setSubject("你好");mailBean.setToEmails(new String[]{"729088240@qq.com","182957182222@139.com"});mailBean.setContext("<a href='www.baidu.com'><font color='red'>fdsfdsf</font></a>");mailSenderService.sendMail(mailBean);}}




1 1
原创粉丝点击