Java实现邮件发送功能

        最近在书上看到了一段利用java实现的邮件发送功能的案例,想想在许多网站中,注册用户时都会用到的一种短信验证的功能,觉得挺有意思,也挺有必要的,所以就想和大家分享一下,也就作为第一次博文的内容。


首先了解一下整个功能的实现步骤

  1. 创建Properties对象,用以保存邮件服务器等信息
  2. 创建Session对象
  3. 创建MimeMessage对象并封装邮件信息
  4. 利用Transport 对象的sendMessage方法发送邮件

接下来是具体步骤,此处我用的是163邮箱向qq邮箱发送邮件
1. 创建Properties对象,封装服务器信息

Properties props = new Properties();
props.put("mail.smtp.host", "smtp.163.com");
  1. 通过Session的getInstance(Properties props)方法获取Session对象
Session session = Session.getInstance(props);
  1. 创建MimeMessage对象并封装邮件信息
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("1234567@163.com"));//设置发送人
message.setText("Hello world");//设置邮件内容
message.setSubject("testing...");//设置主题
message.setRecipient(Message.RecipientType.TO, new InternetAddress("666666@qq.com"));//设置收件人
message.saveChanges();

4.利用Transport 对象的sendMessage方法发送邮件

Transport trans = session.getTransport("smtp"); //获取Transport对象,用于传输邮件
trans.connect("smtp.163.com","1234567@163.com","aaaaaa");//通过connect方法,设置服务器,个人邮箱地址和登陆密码,获取实例
trans.sendMessage(message, message.getAllRecipients());//发送邮件
trans.close();//关闭传输通道

下面是完整代码。

package com.xia.main;

import java.sql.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;

public class MeMail {
public static void main(String [] args){
    try{
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.163.com");//添加服务器
        Session session = Session.getInstance(props);//获取Session实例
        session.setDebug(true);//显示调试信息

        MimeMessage message = new MimeMessage(session);//MimeMessage是Message的子类,Message是一个抽象类
        message.setFrom(new InternetAddress("123456@163.com"));//设置发送人
        message.setText("Hello world");//设置内容
        //message.setContent("testing", "text/plain");设置内容,可以设置文本格式
        message.setSubject("testing...");//设置主题
                   message.setRecipient(Message.RecipientType.TO, new InternetAddress("111111@qq.com"));//设置收件人
        message.setSentDate(new Date(0));//设置发送日期
        message.saveChanges();//保证报头域同会话内容保持一致

            //从指定协议中获取一个会话实例
        Transport trans = session.getTransport("smtp");//获取用于传输信息的实例
        trans.connect("smtp.163.com","123456@163.com","111111");//连接服务器
            trans.sendMessage(message, message.getAllRecipients());//获取收件人,并发送邮件
            trans.close();//关闭传输通道

            System.out.println("发送成功!");
        }catch(Exception e){

        System.out.println("发送失败");
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值