Java邮件开发(一):使用JMail发送一封简单邮件

本文介绍了如何使用JMail组件进行Java邮件开发,包括创建Properties对象、Session对象、Message对象来构造邮件,并通过Transport对象发送邮件。示例代码展示了发送简单邮件和群发邮件的过程。同时提供了JavaMail开发所需的jar包和参考代码下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JMail是进行邮件开发的组件。由于所需要的jar非官方开发,需要自行下载所需jar包,我使用的是javamail-1.4.7

不了解收发邮件过程的请先浏览我的另一片博客:电子邮件工作原理  

1.步骤:

1. 创建Properties对象,并为该对象设置相应内容

2. 创建Session对象

3. 创建Message对象,这个对象封装邮件的信息,如发件人、收件人、主题等等

4. 创建Transport对象,利用这个对象发送邮件

总的来说就两个步骤:构造邮件对象(第3步,只不过在构建邮件时需要其它对象),发送邮件(第4步)

2.发送一封简单的邮件

代码:

package com.zyh.demo;

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Demo1 {
	
	public static void main(String[] args) throws MessagingException {
		Properties props = new Properties();
		props.setProperty("mail.smtp.auth", "true");//设置访问smtp服务器需要认证
		props.setProperty("mail.transport.protocol", "smtp"); //设置访问服务器的协议
		
		Session session = Session.getDefaultInstance(props);
		session.setDebug(true); //打开debug功能
		
		Message msg = new MimeMessage(session);
		msg.setFrom(new InternetAddress("zyh5540@163.com")); //设置发件人,163邮箱要求发件人与登录用户必须一致(必填),其它邮箱不了解
		msg.setText("Hello world!"); //设置邮件内容
		msg.setSubject("test"); //设置邮件主题
		
		Transport trans = session.getTransport();
		trans.connect("smtp.163.com", 25, "zyh5540", "test"); //连接邮箱smtp服务器,25为默认端口
		trans.sendMessage(msg, new Address[]{new InternetAddress("554077931@qq.com")}); //发送邮件
		
		trans.close(); //关闭连接
	}

}

3.群发一封邮件

源代码:

package com.zyh.demo;

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.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * 使用另外一种方式群发一封普通邮件
 * @author Administrator
 *
 */
public class Demo2 {

    public static void main(String[] args) throws MessagingException {
        Properties props = new Properties();
        props.setProperty("mail.smtp.auth", "true");
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.host", "smtp.163.com");
        
        Session session = Session.getInstance(props, new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("zyh5540", "test");
            }
        });
        session.setDebug(true);
        
        Message msg = new MimeMessage(session);
        msg.setFrom(new InternetAddress("zyh5540@163.com"));
        msg.setSubject("中文主题测试1");
        //注意第二个参数要写成"text/html;charset=utf-8",表明这是一封html邮件
        msg.setContent("<span style='color:red;margin:0 auto'>中文测试群发</span>", "text/html;charset=utf-8");
        msg.setRecipients(RecipientType.TO, InternetAddress.parse("zyh5540@163.com,554077931@qq.com"));
        
        Transport.send(msg);
    }
} 

说明:

    有些参数设置是比较灵活的,比如邮箱主机地址smtp.163.com、用户名、密码既可以利用props对象进行设置,也可以在Transport对象与服务器连接时进行指定(就像Demo1)。

附:

1.JavaMail开发jar包下载地址:http://download.youkuaiyun.com/download/zyh5540/6900667

2.参考代码下载地址:http://download.youkuaiyun.com/download/zyh5540/6907731


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值