5.7其他WEB技术——用java的mail类发送邮件

JAVAWEB文章索引点这里
注意事项:
1,eclipse中使用javax.mail和javax.activation需要导入jar包
2,本案例使用smtp发送协议,需要在QQ邮箱中打开设置,并获取对应的授权码作为密码。QQ邮箱授权码获取方式
3,以下只列举了发送文本内容,HTML内容和单一附件
代码如下:

package com.mail;

import java.io.File;
import java.util.Properties;

import javax.activation.*;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.*;


public class MailTest {
    public static void main(String[] args) throws Exception{
        //设置发邮件需要的参数(qq邮箱)
        Properties prop = new Properties();
        prop.setProperty("mail.host", "smtp.qq.com");//设置发邮件的服务器地址
        prop.setProperty("mail.smtp.auth", "true");//指定进行验证登录
        /*
         * 创建一个Session对象用于连接、登录服务
         获取默认的Session对象。如果尚未设置默认值,
         则会创建一个新的Session对象并将其安装为默认值。 
          第一次调用需要传properties,调用则返回第一次的session
         为了安全需要用户自己传入Authenticator对象,其用于间接用于检查访问权限
         创建会话时传入的Authenticator对象与传递给
         后续请求的Authenticator对象进行比较,以获取默认会话
          */
        Session session = Session.getDefaultInstance(prop, new Authenticator() {
            @Override//需要密码验证时调用该方法
            protected PasswordAuthentication getPasswordAuthentication() {
                //PasswordAuthentication类是Authenticator使用的数据持有者。 它只是用户名和密码的存储库。s
                return new PasswordAuthentication("发邮件者QQ号@qq.com", "发邮件者smtp授权码");
            }
        });
        //将调试输出到控制台
        session.setDebug(true);

        //在本次连接上创建一封邮件,此类表示MIME样式的电子邮件
        MimeMessage mail = new MimeMessage(session);
        //设置发件人
        mail.setFrom(new InternetAddress("发邮件者QQ号@qq.com"));
        //设置收件人,发送方式有: 发送TO 抄送CC 密送BCC
        mail.setRecipient(RecipientType.TO, new InternetAddress("收邮件者QQ号@qq.com"));
        //设置主题
        mail.setSubject("来自一个测试");
        //设置内容

        /*发送文本信息
        String obj = "这是邮件的正文内容";
        String type = "text/plain;charset=utf-8";
        mail.setContent(obj, type);
        */

        /*发送html信息
        String obj = "<font color='red'>这是邮件的正文内容</font><br/> ";
        String type = "text/html;charset=utf-8";
        mail.setContent(obj, type);*/


        /*发送附件
        File file = new File("C:/Users/Administrator/Desktop/1.jpeg");
        MimeBodyPart part  = new MimeBodyPart();
        part.setDataHandler(new DataHandler(new FileDataSource(file)));
        //设置文件名,并设置中文编码
        part.setFileName(MimeUtility.encodeText(file.getName()));

        MimeMultipart multipart = new MimeMultipart();
        //添加一个附件(可以添加多个附件)
        multipart.addBodyPart(part);

        mail.setContent(multipart);*/

        //发送邮件
        Transport.send(mail);
    }
}

猜你喜欢

转载自blog.csdn.net/smallhc/article/details/81122229
今日推荐