需要activation jar包、c3p0-0.9.2.1 jar包、mysql-connector-java-5.0.8 jar包(没有数据库连接可不用此包)、mchange-commons-java-0.2.3.4 jar包

所需jar包下载

JavaMail定义

JavaMail可以提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。

SMTP协议(简单邮件传输协议)


它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件中的中转方式。该协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地址。SMTP服务器是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件,通常把处理用户SMTP请求(邮件发送请求)的邮件服务器称之为SMTP服务器。默认端口号为:25。

POP3协议(邮局协议版本3)

本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。用户想要从邮件服务器管理的电子邮箱中接收一封电子邮件的话,他连接上邮件服务器之后,也需要遵循一定的通讯格式,POP3协议用于定义这种通讯格式。通常把处理用户POP3请求(邮件接收请求)的邮件服务器称之为POP3服务器。默认端口号为:110 。

邮件收发过程

发送方邮箱地址——发送方客户端软件——发送方SMTP服务器——接收方SMTP服务器——接收方POP3服务器——接收方客户端软件——接收方邮箱地址

注意:发送方邮箱必须开启 POP3/SMTP服务 或 IMAP/SMTP服务。

package com.email;
import java.security.GeneralSecurityException;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
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;
import com.sun.mail.util.*;
import javax.swing.*;

public class SendEmail {
	
	public void sendEmail(String receive, String send, String host) {
		// 获取系统属性
        Properties properties = System.getProperties();

        // 设置邮件服务器
        properties.setProperty("mail.smtp.host", host);

        properties.put("mail.smtp.auth", "true");
        MailSSLSocketFactory sf;
        
		try {
			sf = new MailSSLSocketFactory();
			sf.setTrustAllHosts(true);
			properties.put("mail.smtp.ssl.enable", "true");
		    properties.put("mail.smtp.ssl.socketFactory", sf);
		} catch (GeneralSecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
        // 获取默认session对象
        Session session = Session.getDefaultInstance(properties,new Authenticator(){
            public PasswordAuthentication getPasswordAuthentication()
            {
                return new PasswordAuthentication(发送人邮箱地址, pop3/smtp服务密码); //发件人邮件用户名、密码
            }
        });

        try{
            // 创建默认的 MimeMessage 对象
            MimeMessage message = new MimeMessage(session);

            // Set From: 头部头字段
            message.setFrom(new InternetAddress(send));

            // Set To: 头部头字段
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(receive));

            // Set Subject: 头部头字段,即邮件标题
            message.setSubject("Hern测试");

            // 设置消息体,即邮件内容
            /*message.setText("HelloWord!");
            */
            
            //设置文件正文即邮件内容,这样可以不用使用message.setText
            message.setContent("<h3>点击查看,这是激活链接</h3><h4><a href='javascript:void(0)'>