java发送邮件的简单实例

JAVA MAIL是利用现有的邮件账户发送邮件的工具,比如说,我在网易注册一个邮箱账户,通过JAVA Mail的操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮件的发送等方面。

本次邮件发送的实例采用的是SMTP协议,SMTP(Simple Mail Transfer Protocal)称为简单邮件传输协议,目标是向用户提供高效、可靠的邮件传输。工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。 SMTP是个请求/响应协议,它监听25号端口,用于接收用户的邮件请求,并与远端邮件服务器建立SMTP连接。

JavaMail用到的jar包,一共3个。下载之后要放到libs目录下,然后右击工程,选择Builder Path--》Configure Build Path,Libraries,Add JARs,选择工程目录下的libs下的jar包。

所需jar包下载地址:http://pan.baidu.com/s/1pKQvzAz 密码:d0yc

邮件发送代码

package utils;

import java.util.Date;
import java.util.Properties;
import java.util.UUID;
import javax.mail.Authenticator;
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;

public class EmailTest {

     public static void main(String[] args) throws MessagingException {
            //创建一封邮件
            //用于连接邮件服务器的参数配置(发送邮件时才需要用到)
            Properties properties = new Properties();
            // 创建信件服务器  
            properties.put("mail.smtp.host", "smtp.163.com");//主机host,跟邮件发送者必须一致
            properties.put("mail.smtp.auth", "true"); // 通过验证,也就是用户名和密码的验证,必须要有这一条 
            properties.put("mail.smtp.port", 465);//加密服务端口465
//          properties.put("mail.smtp.ssl.enable", true);

            // 发送邮件协议名称  
            properties.setProperty("mail.transport.protocol", "smtp");  

            properties.put("mail.smtp.ssl.enable", "true");//加密
            Session session = Session.getInstance(properties, new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication(){
                    //登陆邮箱,密码
                    return new PasswordAuthentication("[email protected]","password1");
                }
            });
//          Session session = Session.getInstance(properties);  
            //根据参数配置,创建回话对象(为了发送邮件准备的)
            //Session session = Session.getDefaultInstance(properties);
            //debug
            session.setDebug(true);
            //创建邮件对象
            MimeMessage message = new MimeMessage(session);
            //邮件几个必须的:发件人,收件人,邮件主题,邮件内容
            try {
                //1、from :发件人
                //      其中 InternetAddress 的三个参数分别为: 邮箱, 显示的昵称(只用于显示, 没有特别的要求), 昵称的字符集编码
                //    真正要发送时, 邮箱必须是真实有效的邮箱。
                 message.setFrom(new InternetAddress("[email protected]"));
                //2、TO :收件人
                //MimeMessage.RecipientType.TO  直接发送人
                //MimeMessage.RecipientType.CC  抄送人(可选)
                //MimeMessage.RecipientType.BCC  秘密发送人(可选)
                message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("[email protected]"));
                //3、Suject :邮件主题
                message.setSubject("邮箱验证","UTF-8");
                //邮件内容
                 ///邮件的内容
                //4、Content :邮件正文(可以使用html标签)
                message.setContent("Java邮箱测试", "text/html;charset=UTF-8");
                //5、设置显示的发件时间
                message.setSentDate(new Date());
                //6、保存前面设置的
                message.saveChanges();
                //7、发送
                Transport.send(message);
                System.out.println("邮件已经发送完毕");
            } catch (MessagingException e) {
                e.printStackTrace();
            }
            
     }
          

}

你可能感兴趣的:(java发送邮件的简单实例)