Java --发送邮件

需求分析

客户需要注册某一个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("[email protected]");//发件人账号
            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", "[email protected]",
                    "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;
    }
}



你可能感兴趣的:(Java --发送邮件)