Spring的邮件发送配置

引入依赖

想要系统发送邮件我们必须先引入相应的jar包。所以我们使用maven引入邮件发送的依赖。

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

javax.mail是java实现邮件发送的工具类。

邮件服务器信息配置文件

一般我们将邮件服务器配置信息写在properties文件里,然后在系统中运行时加载。如果要发送邮件,我们需要配置以下几项重要信息。
基于spring的JavaMailSenderImpl配置的。

  1. protocol:邮件服务协议。有smtp,smtps,pop3。(这里需要注意的是在配置properties时,不要将参数写成大写。如smtp写成SMTP,这将导致与javax.mail里面参数不符,造成找不到协议的报错。)
  2. host:邮件服务器地址。是协议+.+邮件服务器类型后缀+.com。如qq的smtp就是smtp.qq.com,网易的smtp就是smtp.163.com。
  3. port:smtp默认使用25端口,smtps使用465端口,pop3默认110.
  4. username:邮箱地址。即发送方邮箱地址。如855928192@qq.com。
  5. password:邮箱服务器授权码,请注意这个不是你邮箱的密码,这个是邮箱服务器授权码。(各家邮箱服务器授权码获取方式可百度)
  6. javaMailProperties:这里配置的是邮箱服务器的。是其他的一些邮箱配置属性。使用标签进行配置。如email.smtp.auth(身份认证)。

例子:

email.protocol=smtp
email.host=localhost
email.port=25
email.username=test1@mail.com
email.password=123456
email.auth=true
email.systemEmail=844271870@qq.com

spring的JavaMailSenderImpl的声明

<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="protocol" value="${email.protocol}"/>
        <property name="host" value="${email.host}"/>
        <property name="port" value="${email.port}"/>
        <property name="username" value="${email.username}"/>
        <property name="password" value="${email.password}"/>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.${email.protocol}.auth">${email.auth}</prop>
            </props>
        </property>
    </bean>

代码编写

//使用spring的依赖注入,注入JavaMailSender的实现类JavaMailSenderImpl
	@Autowired
    private JavaMailSender javaMailSender;

//从properties配置文件读取,用于表示邮件发送方地址。
    @Value("${email.systemEmail}")
    private String systemEmail;

    @Override
    public void sendEmail(String to, String subject, String htmlText) throws Exception {
        try {
        //使用spring的javaMailSender生成javax.email的MimeMessage对象
            MimeMessage msg = javaMailSender.createMimeMessage();
            //使用spring的MimeMessageHelper对MimeMessage对象进行属性设置。
            MimeMessageHelper msgHelper = new MimeMessageHelper(msg);
			//发送方地址设置
            msgHelper.setFrom(systemEmail);
            //接收方方地址设置
            msgHelper.setTo(to);
            //邮件主题设置
            msgHelper.setSubject(subject);
             //邮件内容设置,true参数表示内容可以表示为html内容
            msgHelper.setText(htmlText,true);
            //发送邮件
            javaMailSender.send(msg);
        }catch (MessagingException e){
            throw new Exception("Failed to send Email.",e);
        }
    }

    public JavaMailSender getJavaMailSender() {
        return javaMailSender;
    }

    public void setJavaMailSender(JavaMailSender javaMailSender) {
        this.javaMailSender = javaMailSender;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值