SSH网上商城---邮件发送
来源:互联网 发布:凯里欧文16年数据 编辑:程序博客网 时间:2024/05/01 03:06
注册网站账号的时候,都需要发送激活邮件,然后让注册的用户点击激活链接方可完成注册,不过话说回来,为什么注册的时候需要发送邮件呢?为什么不注册的时候直接激活呢?一定要收一封激活帐号的邮件?网站这样做的好处是什么?又或者说这样做的目的又是什么呢?小编想到了几点,不是很完整,还请小伙伴多多指教,首先确保注册的用户使用了正确的邮箱;第二,用户密码丢失的时候,通过邮箱找回或者忘记密码的时候重置密码比较安全;第三,通过有效邮箱建立用户数据库,对流失用户可以展开二次营销。在最近的项目中,遇到这样的需求,注册的时候,需要向发送邮件,今天这篇博客,小编就简单的来总结一下,如何实现邮件发送这个功能,希望对有需要的小伙伴有一定的帮助,还请各位大牛们多多指教。
首先第一步,我们需要搭建邮箱服务器,安装邮箱服务器,小编已经上传,点击下载,安装服邮箱服务器,注册账号,如下图所示:
第二步、我们需要安装客户端软件,最常用的outlook和foxmail都可以,需要注意的是,一定要进行配置哦,比如小编在服务器上新建了一个帐号aaa@shop.com,我们就需要在foxmail里面进行配置,如下图所示:
接着我们来编写代码实现邮件发送,是不是有点点小激动nie`(*∩_∩*)′,要想实现邮件发送的功能,首先我们需要把mail.jar包和activation.jar包复制到lib文件下,这两个jar包是管邮件发送的,小编已经上传,点击下载。jar包已经导入好,接着我们就可以编写代码了,首先我们在utils包下面建立一个类MailUitls,具体代码如下所示:
- <span style="font-size:18px;">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 丁国华
- *
- */
- public class MailUitls {
- /**
- * 发送邮件的方法
- * @param to :收件人
- * @param code :激活码
- */
- public static void sendMail(String to,String code){
- /**
- * 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("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("来自网上商城的官方激活邮件");
- // 设置邮件正文:
- message.setContent("<h1>网上商城官方激活邮件!点下面链接完成激活操作!</h1><h3><a href='http://192.168.36.103:8080/shop/user_active.action?code="+code+"'>http://192.168.21.242: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");
- }
- }
- </span>
- <span style="font-size:18px;">package cn.itcast.shop.user.service;
- import org.springframework.transaction.annotation.Transactional;
- import cn.itcast.shop.user.dao.UserDao;
- import cn.itcast.shop.user.vo.User;
- import cn.itcast.shop.utils.MailUitls;
- import cn.itcast.shop.utils.UUIDUtils;
- /**
- * 用户模块业务层代码
- * @author 丁国华
- */
- @Transactional
- public class UserService {
- //注入UserDao
- private UserDao userDao;
- public void setUserDao(UserDao userDao){
- this.userDao =userDao;
- }
- //按用户名查询用户的方法
- public User findByUsername (String username){
- return userDao.findByUsername(username);
- }
- //业务层完成用户注册代码
- 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);
- }
- }
- </span>
最关键的代码就是后面的一句,发送激活邮件,至此,我们的代码部分已经编写完毕,我们来注册一个帐号,如下图所示:
来看看小编的邮箱,有没有收到邮件呢?效果图如下所示:
我们来看一下我们的数据库,如下图所示:
如上图,我们所看见的,数据可以插入到数据库里面,但是出现了中文乱码问题,怎么解决呢?我们可以对JDBC进行如下设置,具体代码如下所示:
- <span style="font-size:18px;">jdbc.driver = com.mysql.jdbc.Driver
- jdbc.url = jdbc:mysql:///shop?characterEncoding=UTF-8
- jdbc.user = root
- jdbc.password =123456</span>
接着,我们来看一下数据库里面,会有怎么样的奇迹nie?如下图所示:
小编寄语:这篇博客小编主要简单的介绍了用户注册的时候发送激活邮件,总的来说分为三步,第一步用户注册以及为什么注册的时候需要发送激活邮件;第二步发送激活邮件,包括搭建邮箱服务器,安装客户端软件等等;第三步、编码实现发送邮件,在实现这个功能的时候,小编犯了一个错误,那就是在foxmail里面没有配置账号,导致收不到邮件,所以说一定要信息啊,在下一篇博客中,小编将继续介绍SSH网上商城的相关知识,精彩未完待续`(*∩_∩*)′!
声明:此片文章为转载
- SSH网上商城---邮件发送
- [SSH网上商城]发送激活邮件
- 【SSH网上商城】实现邮件发送功能
- 【SSH网上商城项目实战25】使用java email给用户发送邮件
- 【SSH网上商城项目实战25】使用java email给用户发送邮件
- 【SSH网上商城项目实战25】使用java email给用户发送邮件
- SSH网上商城(一)---用户注册激活邮件
- 网上商城之用户注册发送邮件激活
- 网上商城——邮件发送(一)
- 网上商城——邮件发送(二)
- ssh 发送邮件
- SSH-------java邮件发送
- SSH网上商城:回首网上商城
- SSH网上商城
- SSH网上商城
- SSH网上商城之实现邮件激活用户账户功能
- 网上商城JaChart生成报表、发送短信和邮件功能
- 【SSH】——发送邮件
- 《Linux命令、编辑器与Shell编程》读书笔记9-Linux网络管理
- Java AQS源码分析
- 计算机网络学习——网络安全
- Android Studio 设置代码提示和代码自动补全快捷键--Eclipse 风格
- js正则表达式regExp类型
- SSH网上商城---邮件发送
- android 检查网络连接状态实现步骤<一>
- Android开发中Handler的经典总结
- 项目管理神器——maven篇(二)Maven核心仓库
- Unity GUI(uGUI)使用心得与性能总结
- android 检查网络连接状态实现步骤<二>
- iOS 9中UIDynamics实现真正的圆形碰撞
- 使用Jenkins配置自动化构建
- Java避免空指针处理