最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

【SSH】

运维笔记admin56浏览0评论

【SSH】

【SSH】

MarketOnLine项目和京东商城的项目很类似,只是访问的数据量小一些。这种电商类的项目,发送邮件注册用户信息是基础中的基础。要想实现该功能,我们需要如下材料。

材料

电子邮箱
 邮件服务器
 邮件协议:
  POP3:Post Office Protocol - Version 3
  SMTP:Simple Mail Transfer Protocol

邮件发送原理

1.首先我们有两个邮箱账号,一个新浪,一个163的,准备从新浪的发送到163的邮箱中。
2.首先登录新浪邮件客户端软件,例如foxmail。
3. 然后登录SMTP服务器,写一封邮件,包括邮件内容,标题等信息。
4.通过SMTP服务器,将邮件发送到接收服务器中,并存到本地硬盘中。
5.163的账号登录客户端软件后,访问POP3服务器,本地存到硬盘上的邮件,就会自动更新到POP3服务器中
6.网易登录的客户端就能很好的读取来自新浪邮箱的邮件了。

环境搭建

1.搭建邮件服务器
  安装邮箱服务器:MailServer(易邮邮件服务器)
  修改域名:
    工具–>服务器设置–>shop.com
  注册账号
   账号–>新建账号
2.安装客户端软件(收发邮件):foxmail
  配置:
    配置发送邮件服务器 
      localhost(本地)
      smtp(外网)
    配置接受邮件服务器:
      localhost(本地)
      pop3(外网)
3.编码

需要引入的包:
javaee.jar
javax.annotation
javax.jms

复制的包: activation.jar
mail.jar

发邮件工具类–MailUitls:

/*** @ClassName:MailUitls* @Description:TODO* @author wangmei* @date 2015年10月2日下午7:48:22* @{tags}*/
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;/*** 邮件发送工具类* @author wm**/public class MailUitls {/*** 发送邮件的方法* @param to:收件人* @param code:激活码*/public static void sendMail(String to ,String code){/*** 1.获得一个Session对象* 2.创建一个代表邮件的对象Message* 3.发送邮件Transport*///1.获得连接对象  ,Alt+shift+sProperties props=new Properties();props.setProperty("mail.host", "localhost");Session session=Session.getInstance(props, new Authenticator(){@Overrideprotected PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication("service@shop.com","111");} });//2.创建邮件对象:Message message=new MimeMessage(session);//设置发件人:try{message.setFrom(new InternetAddress("service@shop.com"));//设置收件人:message.addRecipient(RecipientType.TO, new InternetAddress(to));//抄送cc 密送Bcc//设置标题message.setSubject("来自购物天堂TGB商城官方邮件");//设置邮件正文message.setContent("<h1>购物天堂TGB商城官方激活邮件!点下面链接完成激活操作!</h1><h3><a href='http://192.168.24.175:8080/shop/user_active.action?code="+code +"'>http://192.168.24.175:8080/shop/user_active.action?code="+code +"</a></h3>","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("aaa@shop.com","11111111111111");}*/}

生成UUID的代码:

/*** @ClassName:UUIDUtils* @Description:TODO* @author wangmei* @date 2015年10月2日下午4:52:09* @{tags}*/
package cn.itcast.shop.utils;import java.util.UUID;/*** 生成随机字符串的工具类* @author wm**/
public class UUIDUtils {/*** 获得随机字符串* @return*/public static String getUUID(){return UUID.randomUUID().toString().replace("-", "");}
}

业务层调用发送邮件工具类的代码:

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

邮件发送结果:

邮件的发送并不繁琐,明白其中的原理就好了。邮件的发送,UUID的生成代码,都是复用性很高的代码,有必要整理一下。

发布评论

评论列表(0)

  1. 暂无评论