文档章节

Java --发送邮件

求是科技
 求是科技
发布于 2015/10/15 10:37
字数 483
阅读 63
收藏 4

需求分析

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

客户操作

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

app操作

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

后台操作

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

pom.xml文件里添加

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

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;

@Service
public 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;
    }
}



© 著作权归作者所有

求是科技

求是科技

粉丝 100
博文 455
码字总数 238818
作品 0
成都
后端工程师
私信 提问
Java 发送qq邮件基础和封装

前文摘自 菜鸟教程 :http://www.runoob.com/java/java-sending-email.html 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Frame...

fantj666
2018/03/18
0
0
Java 9 已在路上,公共审查规范草案出来了

Oracle 的 Iris Clark 在发送给 OpenJDK 邮件列表的邮件中宣布,Java 9 的公共审查规范草案已可用。并表示,如果所有人都对草案感到满意,会将其提交给 JCP 项目管理办公室(PMO),以便下星...

王练
2017/03/11
3.9K
10
[手记]使用java Mail发送邮件.

因为项目中要用到这个功能,写出来了.所以和大家分享一下.首先,完成javamail发送电子邮件,需要到oracle网站上下载javamail的jar包:地址为:http://www.oracle.com/technetwork/java/javamail...

被风遗忘
2012/05/06
532
0
Java 发送邮件实现(JavaMail 和 Spring 实现)

Java 实现邮件的发送,使用 JavaMail 和 Spring 实现 一、使用 JavaMail JavaMail 是 Java 处理电子邮件相关的编程接口,但是没有被加在标准的Java开发工具包中(Java Development Kit),所...

非摩尔根
01/17
141
0
关于Java程序发邮件的疑问

最近心血来潮,想自己做个网站,java web 类型,现在关于网站给用户发邮件有个疑问,网上找的那些用 mail.jar 发邮件时可以发送给的,但是我想问下成规模的那些 java web 网站也是用这个 ma...

forwy
2017/03/14
99
1

没有更多内容

加载失败,请刷新页面

加载更多

官方来源的 Duo Mobile App 解决了我的 Network Difficulties 问题

https://help.duo.com/s/article/2094?language=en_US 我利用百度搜索下载了一个 Duo Mobile App (由于 Google Play)在大陆不可用。 在扫描旧手机上的 Duo Mobile App 的二维码时, 显示出错...

圣洁之子
9分钟前
2
0
Zabbix监控Mysql容器(Docker容器)主从是否存活

1、在Zabbix Web端创建模板 2、为该模板创建监控项 3、创建触发器 4、在zabbix-agent端操作 在/etc/zabbix/zabbix_agentd.d新建customize.confw文件 内容如下 UserParameter=mysql.replicat...

abowu
11分钟前
1
0
基于 RocketMQ 的同城双活架构在美菜网的挑战与实践

本文整理自李样兵在北京站 RocketMQ meetup分享美菜网使用 RocketMQ 过程中的一些心得和经验,偏重于实践。 嘉宾李样兵,现就职于美菜网基础服务平台组,负责 MQ ,配置中心和任务调度等基础...

大涛学长
17分钟前
2
0
设计模式之:外观模式和桥接模式

作者:DevYK 链接:https://juejin.im/post/5d7e01f4f265da03b5747aac 外观模式 介绍 外观模式 (Facade) 在开发过程中的运用评率非常高,尤其是在现阶段,各种第三方 SDK “充斥” 在我们周边...

Java架构Monster
18分钟前
1
0
人证合一核验设备

人脸身份验证机,人证合一设备1:N如我们现在在车站或一些重要的场所如步行街、城中村等人流密集的场所应用的人脸识别布控系统,其特点是动态和非配合。所谓的动态也就是识别的不是照 片,不是...

非思丸智能
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部