Spring下发送邮件

一、以QQ邮箱为例,开放smtp服务

1、登录邮箱,进入“设置”,选择“账户”,找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV 服务”,开启“POP3/SMTP 服务”,

短信验证后获取“授权码”,该授权码可以生成不止一个。

2、项目下引入mail.jar,如果是maven项目,依赖如下:

<dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.5.4</version>
 </dependency>




3、ApplicationContext.xml中的配置:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="protocol" value="smtp" />
        <property name="host" value="smtp.qq.com"/>
        <!--<property name="port" value="25"></property>-->
        <property name="username" value="你的邮箱@qq.com"/>
        <property name="password" value="你的授权码"/>
        <property name="defaultEncoding" value="utf-8"/>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.from">你的邮箱@qq.com</prop>
                <prop key="mail.smtp.socketFactory.fallback">false</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
                <prop key="mail.debug">true</prop>
            </props>
        </property>
    </bean>
    <bean id="simpleMailMessage" class="org.springframework.mail.SimpleMailMessage">
        <property name="from" value="你的邮箱@qq.com" />
        <property name="subject" value="邮件主题" />
    </bean>

4、发送邮件代码:

(1)全局属性:

    @Resource(name = "mailSender")
    private JavaMailSenderImpl mailSender;
    @Resource(name = "simpleMailMessage")
    private SimpleMailMessage simpleMailMessage;

(2)方法内代码:

try {
            //创建邮件对象
            MimeMessage message = mailSender.createMimeMessage();
            //邮件助手
            MimeMessageHelper helper = new MimeMessageHelper(message,true,"utf-8");
            //发送方
            helper.setFrom(simpleMailMessage.getFrom());
            //接受方
            helper.setTo(forgetMail);
            //邮件标题
            helper.setSubject(simpleMailMessage.getSubject());
            //todo:链接中的&符号在QQ邮件正文中会显示&amp;不影响使用,但是有点影响阅读
            //网易邮箱正常显示
            String hrefString = request.getScheme()+"://"+request.getServerName()
                    +":"+request.getLocalPort()
                    +request.getSession().getServletContext().getContextPath()
                    +"链接地址?email="+邮箱号+"&time="+System.currentTimeMillis()+"&page="+page;
            //邮件内容
            helper.setText("邮件内容,可以拼接html标签,即hrefString”。",true);
            //发送邮件
            mailSender.send(message);
            prompt = new Prompt(1,"邮件已发送,请登录您的邮箱重置密码!");
        } catch (MessagingException e) {
            prompt = new Prompt(3,"邮箱不存在?未知错误,联系管理员吧。");
            e.printStackTrace();
        }


以上,欢迎加QQ1005113939交流,请各位大佬多多指教。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值