一、邮件在软件开发领域应用
1、会员注册时候的邮箱验证,防止机器人注册
2、忘记登录账号密码的时候,使用邮箱找回口令
3.、会员过生日的时候的生日贺卡
4、电商推荐系统进行商品系统的推广
?
二、邮件发送例子以腾讯QQ邮箱为例
备注:这是核心代码,使用maven进行管理,可以自己进行模块封装
package demo.tt;
import java.util.Date;
import java.util.Properties;
?
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
?
/**
?* java邮件发送测试例子
?* <dependency>
? ? <groupId>com.sun.mail</groupId>
? ?<artifactId>javax.mail</artifactId>
? ? <version>1.5.5</version>
? ?</dependency>
?*/
public class App?
{
? ? public static void main( String[] args ) throws Exception
? ? {
? ? ? ? ?System.out.println( "Hello World!" );
? ? ? ? ?//
? ? ? ? /*QQ邮箱 POP3 和 SMTP 服务器地址设置如下:
? ? ? ? ? ? ? ? ? ? ? 邮箱 POP3服务器(端口995) SMTP服务器(端口465或587)
? ? ? ? qq.com pop.qq.com ? ? ?smtp.qq.com
? ? ? ? SMTP服务器需要身份验证。*/
? ? ? ??
? ? ? ? ?test2();
? ? ? ? ?
? ? ? ? ?test1();
? ? }
? ??
? ? /**
? ? ?* java邮件发送例子
? ? ?* @author QQ:525354786,gaojingsong
? ? ?* @throws Exception
? ? ?*/
? ? public static void test2() throws Exception{
? ? Properties props = new Properties(); ??
? ? ? ? ?props.put("mail.smtp.port", 25); ??
? ? ? ??
? ? ? ? ?Session session = Session.getInstance(props); ?
? ? ? ? ?session.setDebug(true); ?
? ? ? ? ?// 由邮件会话新建一个消息对象 ?
? ? ? ? ?Message message = new MimeMessage(session);?
? ? ? ? ?//设置邮件 ?
? ? ? ? ?InternetAddress from = new InternetAddress("90XXX@qq.com"); ?
? ? ? ? ?// 设置发件人 ?
? ? ? ? ?message.setFrom(from);?
? ? ? ? ?
? ? ? ? ?//设置收件人,并设置其接收类型为TO?
? ? ? ? ?InternetAddress toWhere = new InternetAddress("90XXX@qq.com"); ?
? ? ? ? ?message.setRecipient(Message.RecipientType.TO, toWhere); ?
? ? ? ? ?
? ? ? ? ?// 设置主题 ?
? ? ? ? ?message.setSubject("XXXXXXXXXX---test2"); ?
? ? ? ? ?// 设置信件内容 ?
? ? ? ? ?message.setText("Hello,TestMail"); ?
? ? ? ? ?// 设置发信时间 ?
? ? ? ? ?message.setSentDate(new Date()); ?
? ? ? ? ?// 发送邮件并存储邮件信息
? ? ? ? ?Transport transport = session.getTransport("smtp");
? ? ? ? ?
? ? ? ??
? ? ? ? ?// 以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,
? ? ? ? ?//第二个参数为用户名,第三个参数为密码 ?
? ? ? ? ?transport.connect("smtp.qq.com", "90XXX@qq.com", "XXXXX");?
? ? ? ? ?// 发送邮件,其中第二个参数是所有已设好的收件人地址 ?
? ? ? ? ?transport.sendMessage(message, message.getAllRecipients()); ?
? ? ? ? ?transport.close(); ?
? ?}
? ? /**
? ? ?* java邮件发送例子
? ? ?* @author QQ:525354786,gaojingsong
? ? ?* @throws Exception
? ? ?*/
? ? public static void test1() throws Exception{
? ? Properties props = new Properties(); ??
? ? ? ? ?props.put("mail.smtp.host", "smtp.qq.com"); ??
? ? ? ? ?props.put("mail.smtp.port", 25); ??
? ? ? ? ?props.setProperty("mail.transport.protocol", "smtp"); ?
? ? ? ? ?Session session = Session.getInstance(props); ?
? ? ? ? ?session.setDebug(true); ?
? ? ? ? ?// 由邮件会话新建一个消息对象 ?
? ? ? ? ?Message message = new MimeMessage(session);?
? ? ? ? ?//设置邮件 ?
? ? ? ? ?InternetAddress from = new InternetAddress("90XXX@qq.com"); ?
? ? ? ? ?// 设置发件人 ?
? ? ? ? ?message.setFrom(from);?
? ? ? ? ?
? ? ? ? ?//设置收件人,并设置其接收类型为TO?
? ? ? ? ?InternetAddress toWhere = new InternetAddress("90XXX@qq.com"); ?
? ? ? ? ?message.setRecipient(Message.RecipientType.TO, toWhere); ?
? ? ? ? ?
? ? ? ? ?// 设置主题 ?
? ? ? ? ?message.setSubject("XXXXXXXXXX==test1"); ?
? ? ? ? ?// 设置信件内容 ?
? ? ? ? ?message.setText("Hello,TestMail"); ?
? ? ? ? ?// 设置发信时间 ?
? ? ? ? ?message.setSentDate(new Date()); ?
? ? ? ? ??
? ? ? ? ?Transport transport = session.getTransport(); ?
? ? ? ? ?//第一个参数是用户名,第二个参数为密码 ?
? ? ? ? ?transport.connect("90XXX@qq.com", "XXXXX");
? ? ? ? ?// 发送邮件,其中第二个参数是所有已设好的收件人地址 ?
? ? ? ? ?transport.sendMessage(message, message.getAllRecipients()); ?
? ? ? ? ?transport.close(); ?
? ? }
}
?
原文:http://gaojingsong.iteye.com/blog/2280895