实现邮件发送功能

前言

    目前随着互联网的发展,在项目中通过邮件给用户发通知已经是一个很常见的事情了,给用户发邮件、发短信类似的功能很常见,所以小编今天就在此总结一下如何实现发邮件的功能呢?

叙述

首先了解一下,实现邮件发送功能的大概思路是什么样的吧。

发送激活邮件:
* 电子邮箱:邮箱账号(邮箱地址)
* 邮件服务器:
* 邮件协议:
   SMTP:发送邮件协议
   POP3:接收邮件协议
* 邮箱发送全过程:
 * 搭建邮箱服务器:
   安装邮箱服务器:
   修改域名:工具---->服务器设置---->shop.com
   注册账号:账号---->新建账号
 * 安装客户端软件:(接收和发送邮件.) outlook 或 foxmail
   配置:
   配置发送邮件服务器:localhost
   配置接收邮件服务器:localhost
 * 编码实现发送邮件:
   导入mail.jar和activation.jar
   编写代码完成发送邮件

 如下图,[email protected] 账号登录客户端,发送邮件连接的是SMTP服务器,然后创建了一个邮件对象将主题、收件人地址、邮件正文等信息保存到本地,点击发送后通过连接接收方的SMTP服务器将邮件保存到硬盘上,然后收件方[email protected] 账号登录接收邮件,通过连接POP服务器从硬盘上获取邮件并返回到客户端显示。

实现邮件发送功能_第1张图片

具体步骤:

1、搭建邮箱服务器:安装软件eyoumailserversetup.exe

2、修改域名:工具---->服务器设置---->shop.com

实现邮件发送功能_第2张图片

3、注册账号: 账号---->新建账号

实现邮件发送功能_第3张图片

   这样我们就新建好了测试的邮箱账号,在这里用Foxmail来接收邮件。

4、安装foxmail并配置发送邮件服务器:

实现邮件发送功能_第4张图片

实现邮件发送功能_第5张图片

 

5、引用jar

6、具体的代码实现

邮件发送的工具类:

 

package cn.itcast.shop.utils;


import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


/*
 * 邮件发送工具类
 */
public class MailUtils {
/*
 * 发送邮件的方法
 * @param to   收件人
 * @param code  激活码
 */
	public static void sendMail(String to,String code){
		/*
		 * 1、获得1个Session对象
		 * 2、创建一个代表邮件的对象Message
		 * 3、发送邮件transport
		 */
		//1、获得对连接象
		Properties props=new Properties();
		props.setProperty("mail.host", "localhost");
		Session session=Session.getInstance(props, new Authenticator(){

			@Override
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication("[email protected]","1");
			}
			
		});
		//2、创建邮件对象
		Message message = new MimeMessage(session);
		// 设置发件人:
		try {
			message.setFrom(new InternetAddress("[email protected]"));
			// 设置收件人:
			message.addRecipient(RecipientType.TO, new InternetAddress(to));
			// 抄送 CC   密送BCC
			// 设置标题
			message.setSubject("来自北极激活邮件");
			// 设置邮件正文:
			message.setContent("

北极激活邮件!点下面链接完成激活操作!

http://192.168.21.197:8088/shop/user_active.action?code="+code+"

", "text/html;charset=UTF-8"); // 3.发送邮件: Transport.send(message); } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } public static void main(String[] args){ sendMail("[email protected]","1111"); } }

 在service中实现代码

 

 

   //业务层完成用户注册代码:
	public void save(User user) {
		//将数据存入数据库
		user.setState(0);  //0代表用户未激活。 1代表用户已经激活
		String code = UUIDUtils.getUUID()+UUIDUtils.getUUID();
		user.setCode(code);
		userDao.save(user);
		//发送激活邮件
		MailUtils.sendMail(user.getEmail(),code);	
	}

 

如此,实现了邮件的发送功能,接下来是用户收取邮件,看一下效果。

实现邮件发送功能_第6张图片
 

小结

    不怕不知道,就怕不知道,尝试着去了解,去学习。

你可能感兴趣的:(——【SSH网上商城项目】)