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

目前在网易邮箱测试通过,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.com
mail.host=smtp.163.com
mail.password=****
mail.smtp.auth=true
mail.smtp.timeout=25000
mail.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;
@Service
public class MailSenderService {
	@Autowired
	private 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);
	}
}




  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值