JAVA发送邮件相关

  • 发送激活邮件
    • 电子邮箱:邮件服务器上的一块空间;
    • 邮件服务器:类比于web服务器(tomcat),有相应的服务器软件;
    • 邮件协议:大公司发送和接收服务器分开,也可以都用一个服务器。

SMTP:简单的邮件发送协议;

POP3:接收邮件的一个协议;

    • 邮件发送的全过程:理论上需要联网,但是通过搭建在本地的服务器,可以在本地进行邮件的发送。

    • 搭建邮箱服务器:
      • 安装邮箱服务器(易邮邮箱服务器,就按默认的安装在C盘)
      • 打开该服务器,修改域名:工具-->服务器设置-->单域名改为自定义,例如:shop.com。
      • 注册几个内部账号:账号-->新建账号。密码设为55555
      • 注册一个自定义的官方账号:service    密码:55555
    • 安装邮件客户端软件(可以接发邮件):避免了网页版session的过期离线问题。
      • 流行的有软件有:outlook(微软收费)、foxmail(免费,选用foxmail)
      • 配置

* 配置发送邮件服务器:localhost

* 配置接收邮件服务器:localhost

    • 编码实现邮件发送(见MailUtils.java)
  1. 用户激活

    • 在邮箱客户端中点击激活链接:
      • 根据链接中传递的激活码进行查询

* 如果用户不为空:修改用户状态:0  -->  1,向前台传递激活成功消息。

* 如果用户为空:激活码失效或被篡改,向前台传递激活失败消息。

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.获得一个session对象

* 2.创建一个代表邮件的对象的Message

* 3.发送邮件Transport

*/

//1.获得一个session对象

Properties props = new Properties();

props.setProperty("mail.host", "localhost");//指定发送邮件的主机是谁:localhost

Session session = Session.getInstance(props, new Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication("[email protected]", "55555");

}

});

//2.创建一个代表邮件的对象的Message

Message message = new MimeMessage(session);

try {

//2.1:设置发件人

message.setFrom(new InternetAddress("[email protected]"));

//2.2:设置收件人

/*抄送:CC ; 密送:BCC*/

message.addRecipient(RecipientType.TO, new InternetAddress(to));

//2.3:设置邮件标题

message.setSubject("官方账号激活邮件!");

//2.4:设置邮件正文

message.setContent("<h2>欢迎您XXXX,这是唯唯乐购官方发送的账号激活邮件正文,请勿泄露<br/>此邮件,以免给用户带来损失!请点击后面的链接完成账户激活操作。</h2><h3><a href=‘http://127.0.0.1:8080/XXXX/user_active.action?code="+code+"‘>http://127.0.0.1:8080/Shopping/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("[email protected]", "55555");

}

}

用户激活的action方法:

/**

* 用户激活的方法

*/

public String active() {

// 根据激活码查询用户:

User existUser = userService.findByCode(user.getCode());

// 判断

if (existUser == null) {

// 激活码错误的

this.addActionMessage("激活失败:激活码错误!");

} else {

// 激活成功

// 修改用户的状态

existUser.setState(1);

existUser.setCode(null);

userService.update(existUser);

this.addActionMessage("激活成功:请去登录!");

}

return "msg";

}

时间: 2024-08-08 21:53:18

JAVA发送邮件相关的相关文章

java发送邮件监控并记录异常

根据项目管理的内容,我们一般在立项之前,需要对项目可行性进行分析.论证.评估,最终需要出具<项目可行性分析报告>,论证项目在技术.经济.运行环境以及其他项目相关方面的可行性.效益.必要性.理论很好,避免项目失败.因为作可行性分析只占项目投资的0.5%~1%,如果能在前期就能把问题论证好了,当然是功德无量的一件事情.但是在实践中,项目可行性却无法起到相应的作用.在项目中,人是最大的主观因素,人也是最大的决定因素.所以也要从人讲起:客户:客户是投资人,是项目发起人.客户虽然不知道项目如何实现,实现

Java发送邮件示例

利用Java发送邮件示例: 1.发送QQ邮件 1 import java.util.Properties; 2 import javax.mail.Message; 3 import javax.mail.MessagingException; 4 import javax.mail.Session; 5 import javax.mail.Transport; 6 import javax.mail.internet.AddressException; 7 import javax.mail.

Java集合相关面试问题和答案

Java集合相关面试问题和答案 面试试题 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1.2提出了囊括所有集合接口.实现和算法的集合框架.在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久.它还包括在Java并发包中,阻塞接口以及它们的实现.集合框架的部分优点如下: (1)使用核心集合类降低开发成本,而非实现我们自己的集合类.

java接口相关例题

java接口相关习题 interface Graphics{  //接口里面只能用抽象方法  public abstract double area();    }//设置 平面类class PlaneGraphics1{    private String shape; //形状    //构造方法,有参数    public PlaneGraphics1(String shape)    {        this.shape=shape;    }    //无参数    public P

Java Reflection 相关及示例

Java Reflection 相关及示例 前言: 代码有点长.贴出github地址:https://github.com/andyChenHuaYing/scattered-items/tree/master/items-java-reflection 测试目标类:TargetClass.自定义的辅助类比较多.在这里不贴了.篇幅有限.并且测试也简单.因此测试类也没有提及. 一:简介 Java Reflection是针对Class也就是我们平常说的类而言的.用于操作Java中的Class.在Ja

Java集合类相关面试题

1.Collection和Collections的区别 java.util.Collection 是一个集合接口,Collection接口在Java类库中有很多具体的实现,例如List.Set java.util.Collections 是针对集合类的一个帮助类,它提供了一系列的静态方法实现对各种集合的搜索.排序.线程安全化等操作. 2.ArrayList与Vector的区别 这两个类都实现了List接口(List接口继承自Collection接口).它们都是有序集合,它们内部的元素都是可以重复

C#和Java交互相关研究

之前总觉得C#和Java可以交互应用,但是由于时间以及其他方面的原因,一直没有调研.今天抽空搜了一下,终于折腾出来了. 以下是我自己就C#和Java整合的一些提问和分析,如果有不对的地方,请路过的各位大虾给予指出.3Q! 问题来了: 1.C#和Java如何整合? 2.为什么C#(.Net)要和Java整合? 3.Java和C#整合时,Java主要扮演什么角色?C#扮演什么角色? 答案一一揭晓: 1.C#和Java整合大致有4条路可以走. 1.1 把Java包转换为DLL或者EXE后注册为com组

java发送邮件

     AK这几天一直在弄关于邮件的发送,在网上查了很多资料,基本都试了试,现在总结一些,这篇文章是关于java发送邮件.希望在今后的路上能帮助你我,哪怕分毫!怎么感觉这句话有点熟悉乃,你没猜错,代码和功夫一样,就是分毫之争,AK好像又跑题了...下面这几个类都有详细的备注,如果你只希望尽快完成功能,那就复制吧,除了最后一个类需要少量自定义,其他的CV大法之后,你就OK了.      建议如果有时间,还是看看吧,必定也是前辈们的心血,你又没猜错,AK也基本上是网上凑的,做了少量修改而已,言归正

用JAVA发送邮件 注:(原文来自http://blog.sina.com.cn/liuanzhi)

要用Java发送邮件,除过JDK本身的jar包之外,还需要两个额外的jar包:JavaMail和JAF.当然,如果你使用的JavaEE的JDK,那就不用单独去网上下载了,因为JavaEE的JDK中已经自带了这两个jar包.如果你使用的是JavaSE的JDK,那么你需要去Oracle的网站上下载这两个jar包.JavaMail 1.4.5 jar包下载地址是:http://www.oracle.com/technetwork/java/index-138643.html,JAF 1.1.1 jar