博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java --发送邮件
阅读量:5996 次
发布时间:2019-06-20

本文共 3469 字,大约阅读时间需要 11 分钟。

hot3.png

需求分析

客户需要注册某一个app,选择邮箱注册。

客户操作

打开app,点击邮箱注册,会收到一个跳转提示,跳往邮箱验证页面。

app操作

传入后台两个参数:邮箱地址、验证内容

后台操作

0.导入java自带的发送邮件的jar包,我的是maven工程

pom.xml文件里添加

        
            
com.sun.mail
            
javax.mail
            
1.5.2
        

1.接收参数

实现层代码如下

import java.util.Date;import java.util.Properties;import javax.mail.BodyPart;import javax.mail.Session;import javax.mail.Message.RecipientType;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;import org.springframework.stereotype.Service;import com.zhiji.caren.common.Constant;import com.zhiji.caren.common.ResultCode;import com.zhiji.caren.common.ResultMsg;import com.zhiji.caren.common.ResultObject;import com.zhiji.caren.service.SendEailService;@Servicepublic class SendEmailServiceImpl implements SendEailService {    @Override    public ResultObject actMail(String Email, String iCode) {        ResultObject resultObject = new ResultObject();        try {            Properties props = System.getProperties();            props.setProperty("mail.transport.protocol", "smtp"); // 邮箱协议            props.put("mail.smtp.host", "smtp.qq.com");// 邮箱服务器            props.put("mail.smtp.auth", "ture");// 是否需要身份验证            props.put("mail.smtp.port", 25);// 服务器端口            Session mailSession = Session.getDefaultInstance(props); // 设置session,和邮件服务器进行通讯。            MimeMessage message = new MimeMessage(mailSession);// 设置邮件类型            MimeMultipart mp = new MimeMultipart();            BodyPart body = new MimeBodyPart();            message.setSubject(MimeUtility.encodeText("xx公司")); // 设置主题            // 设置正文            body.setContent("你好!"                    + "\n" + "\n"                    + "欢迎加入XX公司。你的注册邮箱为:" + Email                    + "\n" + "\n"                    + "你用于注册XX公司的验证码为:"                    + "\n" + "\n"                    + iCode + ",验证通过后即可登录,如非本人操作请忽略。"                    + "\n" + "\n"                    + "\n", "text/plain;charset=GBK"); //            mp.addBodyPart(body);            message.setContent(mp);            message.setHeader("xx公司邮箱验证", "xx公司邮箱验证"); // 设置邮件标题            message.setSentDate(new Date());// 设置邮件发送日期            InternetAddress address = new InternetAddress("123456@qq.com");//发件人账号            message.setFrom(address); // 设置邮件发送者的地址            InternetAddress toAddress = new InternetAddress(Email); // 设置邮件接收方的地址            message.setRecipient(RecipientType.TO, toAddress);// 添加邮件接受方地址            message.saveChanges();            javax.mail.Transport transport = null;// 创建一个邮件发送实例transport            transport = mailSession.getTransport("smtp");//规定tranport使用协议            // 使用transport            transport.connect("smtp.qq.com", "123456@qq.com",                    "123456");            //发送邮件                    transport.sendMessage(message, message.getAllRecipients());            transport.close();                                    resultObject.setResultCode(ResultCode.SUCCESS);            resultObject.setResultMsg(ResultMsg.MSG_SUCCESS);                    } catch (Exception ex) {            ex.printStackTrace();            resultObject.setResultCode(ResultCode.FAILED);            resultObject.setResultMsg(ResultMsg.MSG_FAILED);                }        return resultObject;    }}

转载于:https://my.oschina.net/u/2312022/blog/517414

你可能感兴趣的文章
(转)设计模式——观察者模式
查看>>
Jar包冲突解决方法
查看>>
彻底搞清楚Java并发 (一) 基础
查看>>
SQL疑难杂症【3】链接服务器提示"无法启动分布式事物"
查看>>
Windows Mobile和Wince(Windows Embedded CE)下如何封装Native DLL提供给.NET Compact Framework进行调用...
查看>>
数据库相关
查看>>
HDU Count the string (KMP)
查看>>
C#中的泛型
查看>>
编程之美4:求数组中的最大值和最小值
查看>>
ios7新增基础类库以及OC新特性
查看>>
[LeetCode] Maximal Square
查看>>
代码设置TSQLCONNECTION参数
查看>>
BROKER服务器同客户端和应用服务器三者之间传递消息的格式定义
查看>>
使用jQuery和Bootstrap实现多层、自适应模态窗口
查看>>
C#中如何选择使用T[]或List<T>
查看>>
什么都不做就能赚钱?Airbnb靠什么牛逼的技术赚全世界人的钱?
查看>>
Electron Cash钱包存BCH教程
查看>>
Linux常用命令大全
查看>>
ceph存储 磁盘IOPS常识
查看>>
ORA-12720: operation requires database is in EXCLUSIVE mode
查看>>