ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

邮件发送——java mail

2022-01-08 17:00:56  阅读:168  来源: 互联网

标签:qq java new import mail com 邮件


java mail说白了就是套模板,大框架。框架搭起来后邮件发送的内容就稍微变通一下,就和搭积木一样。

依赖的jar包

在这里插入图片描述
使用项目管理工具创建项目的话对应去搜就行了。

纯文本邮件

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.GeneralSecurityException;
import java.util.Properties;

public class Mail {
    public static void main(String[] args) throws GeneralSecurityException, MessagingException {
        Properties properties = new Properties();
        properties.setProperty("mail.host","smtp.qq.com");          //设置qq邮件服务器
        properties.setProperty("mail.transport.protocol","smtp");   //邮件发送协议
        properties.setProperty("mail.smtp.auth","true");            //需要验证用户名和密码

        //发送邮件的五个步骤
        //1. 获取Session实例(定义整个程序所需环境信息,比如主机名、端口号、采用的邮件发送和接收协议)
        Session session = Session.getDefaultInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("2979746577@qq.com","jxitmoyolhrjdcdh");
            }
        });

        session.setDebug(true); //开启debug模式

        //2. 通过session获取transport(用来发送邮件)
        Transport transport = session.getTransport();

        //3. 使用邮箱的用户名和授权码连上邮件服务器
        transport.connect("smtp.qq.com","2979746577@qq.com","jxitmoyolhrjdcdh");

        //4. 创建邮件
        MimeMessage msg = new MimeMessage(session);
        //设置邮件的发送人
        msg.setFrom(new InternetAddress("2979746577@qq.com"));
        //设置邮件的接收人
        msg.setRecipient(Message.RecipientType.TO,new InternetAddress("2979746577@qq.com"));
        //设置邮件的主题
        msg.setSubject("你好啊!java mail");
        //设置邮件的内容
        msg.setContent("<h1 style=’color=red‘>你好啊!希望我们能成为很好的朋友</h1>","text/html;charset=utf-8");

        //5. 发送邮件
        transport.sendMessage(msg, msg.getAllRecipients());

        //6. 关闭连接
        transport.close();
    }
}

带附件的邮件

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.Properties;

public class MailPlus {
    public static void main(String[] args) throws Exception{
        Properties properties = new Properties();
        properties.setProperty("mail.host","smtp.qq.com");          //设置qq邮件服务器
        properties.setProperty("mail.transport.protocol","smtp");   //邮件发送协议
        properties.setProperty("mail.smtp.auth","true");            //需要验证用户名和密码

        //发送邮件的五个步骤
        //1. 获取Session实例(定义整个程序所需环境信息,比如主机名、端口号、采用的邮件发送和接收协议)
        Session session = Session.getDefaultInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("2979746577@qq.com","jxitmoyolhrjdcdh");
            }
        });

        session.setDebug(true); //开启debug模式

        //2. 通过session获取transport(用来发送邮件)
        Transport transport = session.getTransport();

        //3. 使用邮箱的用户名和授权码连上邮件服务器
        transport.connect("smtp.qq.com","2979746577@qq.com","jxitmoyolhrjdcdh");

        //4. 创建邮件
        MimeMessage msg = new MimeMessage(session);
        //设置邮件的发送人
        msg.setFrom(new InternetAddress("2979746577@qq.com"));
        //设置邮件的接收人
        msg.setRecipient(Message.RecipientType.TO,new InternetAddress("2979746577@qq.com"));
        //设置邮件的主题
        msg.setSubject("你好啊!java mail");
        //=================================================================

        //准备图片数据
        MimeBodyPart image = new MimeBodyPart();
        //图片需要经过数据处理
        DataHandler handler = new DataHandler(new FileDataSource("3.png"));
        image.setDataHandler(handler);
        image.setContentID("bz.jpg");   //给图片设置一个id,附件是设置FileName

        //准备正文数据
        MimeBodyPart text = new MimeBodyPart();
        text.setContent("这是邮件的正文,附带了一张图片<img src='cid:bz.jpg'","text/html;charset=utf-8");

        //描述数据关系
        MimeMultipart mm = new MimeMultipart();
        mm.addBodyPart(image);
        mm.addBodyPart(text);
        mm.setSubType("related");

        //把编辑好的内容放到消息中,保存修改
        msg.setContent(mm);
        msg.saveChanges();

        //=================================================================

        //5. 发送邮件
        transport.sendMessage(msg, msg.getAllRecipients());

        //6. 关闭连接
        transport.close();
    }
}

标签:qq,java,new,import,mail,com,邮件
来源: https://blog.csdn.net/winner_20020626/article/details/122382694

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有