• java后台代码发送邮件


    1:安装  eyoumailserversetup 易邮邮件服务器 注册账号

    2:安装Foxmail

    登录以后会有个还原页面

     3:测试

    4:java 代码编写

        配置文件:

    mail.host=http://172.16.71.27:8080/
    mail.smtpHost=172.16.71.27
    mail.username=Admin@liveyc.com
    mail.password=Admin

       server层代码:

      1 package com.liveyc.eloan.base.service.impl;
      2 
      3 import java.util.Date;
      4 import java.util.Properties;
      5 import java.util.UUID;
      6 
      7 import javax.mail.internet.MimeMessage;
      8 
      9 import org.springframework.beans.factory.annotation.Autowired;
     10 import org.springframework.beans.factory.annotation.Value;
     11 import org.springframework.mail.javamail.JavaMailSenderImpl;
     12 import org.springframework.mail.javamail.MimeMessageHelper;
     13 import org.springframework.stereotype.Service;
     14 
     15 import com.liveyc.eloan.base.dao.EmailverifyDao;
     16 import com.liveyc.eloan.base.domain.Emailverify;
     17 import com.liveyc.eloan.base.service.IEmailVerifyService;
     18 import com.liveyc.eloan.base.util.DateUtil;
     19 import com.liveyc.eloan.util.BidConst;
     20 import com.liveyc.eloan.util.UserContext;
     21 
     22 @Service
     23 public class EmailVerifyServiceImpl implements IEmailVerifyService {
     24 
     25     @Autowired
     26     private EmailverifyDao emailverifyDao;
     27 
     28     @Value("${mail.host}")
     29     private String host;
     30 
     31     @Value("${mail.smtpHost}")
     32     private String smtpHost;
     33 
     34     @Value("${mail.username}")
     35     private String username;
     36 
     37     @Value("${mail.password}")
     38     private String password;
     39 
     40     /**
     41      * http://localhost:8080/checkEmailBind.do?key=4f399b0b-c17b-4e9d-9abc-0
     42      * c816cd474bb 1,得到当前用户,得到要绑定的邮箱,绑定的时间,生成一个随机码--->EmailVerify;
     43      * 2,发送一封邮件;在邮件的这里(http://localhost/checkEmailBind.do?key=随机码)
     44      */
     45     @Override
     46     public void sendVerifyEmail(String email) {
     47         Emailverify ev = new Emailverify();
     48         ev.setUserinfoId(UserContext.getCurrent().getId());
     49         ev.setEmail(email);
     50         ev.setSendTime(new Date());
     51         ev.setUuid(UUID.randomUUID().toString().replace("-", ""));
     52 
     53         // 构造邮件内容
     54         StringBuilder content = new StringBuilder(100)
     55                 .append("<html><head></head><body><h1>这是你在蓝源Eloan网站的验证邮件,请点击<a href='")
     56                 .append(host).append("checkEmailBind.do?key=")
     57                 .append(ev.getUuid()).append("'>").append("这里").append("</a>")
     58                 .append("完成邮箱绑定,有效期为"+BidConst.EMAIL_VALID_DAY+"天</h1></body></html>");
     59 
     60         System.out.println(content);
     61 
     62         try {
     63             sendEmail(email, "绑定邮箱验证邮件", content.toString());
     64             this.emailverifyDao.insert(ev);
     65         } catch (Exception e) {
     66             throw new RuntimeException(e.getMessage());
     67         }
     68     }
     69 
     70     /**
     71      * 发送邮件
     72      * 
     73      * @param email
     74      * @param string
     75      * @param string2
     76      */
     77     private void sendEmail(String email, String subject, String content)
     78             throws Exception {
     79         JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
     80 
     81         // 设置发送邮件的SMTP服务器地址
     82         senderImpl.setHost(smtpHost);
     83 
     84         // 创建一个邮件对象
     85         MimeMessage mailMessage = senderImpl.createMimeMessage();
     86 
     87         // 创建邮件对象的服务类
     88         MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,"UTF-8");
     89 
     90         messageHelper.setTo(email);// 设置发给谁
     91         messageHelper.setFrom(username);// 发件人
     92         messageHelper.setSubject(subject);// 设置邮件标题
     93         messageHelper.setText(content, true);// 设置邮件内容
     94 
     95         senderImpl.setUsername(username); // 根据自己的情况,设置username
     96         senderImpl.setPassword(password);// 设置密码
     97 
     98         Properties prop = new Properties();
     99         prop.put("mail.smtp.auth", "true");// 设置发送邮件需要身份认证
    100         prop.put("mail.smtp.timeout", "25000");// 设置发送超时时间
    101         senderImpl.setJavaMailProperties(prop);
    102 
    103         senderImpl.send(mailMessage);
    104     }
    105 
    106     /**
    107      * 获取请求中的随机码;
    108      * 
    109      * 2,根据随机码得到EmailVerify对象; 3,只需要验证时间是否超时; 4,把emailverify中的邮箱地址绑定到指定用户上;
    110      */
    111     @Override
    112     public Emailverify verifyEmail(String key) {
    113         Emailverify ev = this.emailverifyDao.selectByUuid(key);
    114         if (ev != null
    115                && DateUtil.getSecondsBetweenDates(ev.getSendTime(), new Date()) <= 3600 * 24 * BidConst.EMAIL_VALID_DAY) {
    116             return ev;
    117         }
    118         return null;
    119     }
    120 
    121 }

    5:页面测试

     

     收到邮件了

  • 相关阅读:
    WPF应用程序使用资源及多语言设置学习1
    在Nhibernate.Burrow中使用Fluent NHibernate
    预加载页面图片的简单方案
    IIS7中使用Nhibernate Burrow的问题.
    WPF应用程序使用资源及多语言设置学习2
    xampp中apache在windows7下无法启动的问题
    cache和buffer
    Python基础题
    Python 数据类型
    简单的Nginx自动化安装啊脚本
  • 原文地址:https://www.cnblogs.com/xuyou551/p/8126279.html
Copyright © 2020-2023  润新知