javaMail

知识点:javaMail api包含Session,Message,Transport,InternetAddress
Session:封装一组与邮件配置有关的方法,通过java.util.Properties或得配置信息,通过getdefaultInstance()获得邮件会话.
Message:邮件信息类,主要方法:
setFrom();setSubject();setContent();setSentDate();setText();addRecipient(收件人类型,收件邮箱);
Transport:邮件传输类Transport.send(message);

InternetAddress:用户的邮箱地址
1.发送纯文本文件

package main;

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;

public class send2 {
    public void SendMail() throws MessagingException{
        Authenticator auth = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("ppag38615f19c8c8@sohu.com(发送邮箱)", "发送邮箱密码");
            }
        };//获取认证验证

        Properties prop=new Properties();
        prop.setProperty("mail.host","smtp.sohu.com");
        prop.setProperty("mail.smtp.auth", "true");
        prop.setProperty("mail.transport.protocol", "SMTP");//邮件配置信息
        Session s=Session.getDefaultInstance(prop,auth);

        MimeMessage me=new MimeMessage(s);
        InternetAddress to=new InternetAddress("1278808836@qq.com");
        me.addRecipient(Message.RecipientType.TO, to);
        me.setFrom(new InternetAddress("ppag38615f19c8c8@sohu.com")); // 设置发送者
        //me.setContent("hello world","text/html;utf-8");
        me.setSubject("主题");
        me.setText("hello");

        Transport t=s.getTransport("smtp");
        t.send(me);

    }
    public static void main(String[] args) throws MessagingException {
        new send2().SendMail();
    }

}

2.发送html格式的文件

package main;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
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;

public class send2 {
    public void SendMail() throws MessagingException, IOException{
        Authenticator auth = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("ppag38615f19c8c8@sohu.com", "发送密码");
            }
        };//获取认证验证

        Properties prop=new Properties();
        prop.setProperty("mail.host","smtp.sohu.com");
        prop.setProperty("mail.smtp.auth", "true");
        prop.setProperty("mail.transport.protocol", "SMTP");//邮件配置信息
        Session s=Session.getDefaultInstance(prop,auth);

        MimeMessage me=new MimeMessage(s);
        InternetAddress to=new InternetAddress("1278808836@qq.com");
        me.addRecipient(Message.RecipientType.TO, to);
        me.setFrom(new InternetAddress("ppag38615f19c8c8@sohu.com")); // 设置发送者
        //me.setContent("hello world","text/html;utf-8");
        me.setSubject("主题");
        //me.setText("hello");
        String source="C:\Users\佩\Desktop\2.html";
        String content="";
        String line=null;
        BufferedReader br=new BufferedReader(new FileReader(source));
        while((line=br.readLine())!=null){
            content+=line;
        }
        br.close();
        me.setContent(content, "text/html;charset=utf-8");
        Transport t=s.getTransport("smtp");
        t.send(me);

    }
    public static void main(String[] args) throws MessagingException, IOException {
        new send2().SendMail();
    }

}

3.发送带附件的邮箱

package main;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

public class send2 {
    public void SendMail() throws MessagingException, IOException{
        Authenticator auth = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("ppag38615f19c8c8@sohu.com", "04143114wp");
            }
        };//获取认证验证

        Properties prop=new Properties();
        prop.setProperty("mail.host","smtp.sohu.com");
        prop.setProperty("mail.smtp.auth", "true");
        prop.setProperty("mail.transport.protocol", "SMTP");//邮件配置信息
        Session s=Session.getDefaultInstance(prop,auth);

        MimeMessage me=new MimeMessage(s);
        InternetAddress to=new InternetAddress("1278808836@qq.com");
        me.addRecipient(Message.RecipientType.TO, to);
        me.setFrom(new InternetAddress("ppag38615f19c8c8@sohu.com")); // 设置发送者
        //me.setContent("hello world","text/html;utf-8");
        me.setSubject("主题:创建带附件的邮件");

        BodyPart bp=new MimeBodyPart();
        bp.setText("带附件的邮件");
        Multipart mp=new MimeMultipart();
        mp.addBodyPart(bp);

        BodyPart atachment=new MimeBodyPart();
        String source="C:\Users\佩\Desktop\1.doc";
        DataSource ds=new FileDataSource(source);//创建数据源
        atachment.setDataHandler(new DataHandler(ds));//创建执行文件的指针
        atachment.setFileName(MimeUtility.encodeWord("1.doc"));//设置附件中的文件名
        mp.addBodyPart(atachment);

        me.setContent(mp, "text/html;charset=utf-8");
        Transport t=s.getTransport("smtp");
        t.send(me);

    }
    public static void main(String[] args) throws MessagingException, IOException {
        new send2().SendMail();
    }

}
原文地址:https://www.cnblogs.com/wangxiaopei/p/8551274.html