JavaWeb2 邮件发送

该博客聚焦JavaWeb邮件发送,介绍了所需的mail-1.4.7.jar和activation-1.1.1.jar。详细阐述了发送QQ邮箱的方法,包括发送多文本邮件,涉及MIME、MimebodyPart类、MimeMultipart类等知识,还提及了发送图片邮件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaWeb2 邮件发送

mail-1.4.7.jar
activation-1.1.1.jar
在这里插入图片描述
发送qq邮箱:

        properties.setProperty("mail.host","smtp.qq.com");//设置qq邮件服务器
        properties.setProperty("mail.transport.protocol","smtp");//邮件发送协议
        properties.setProperty("mail.smtp.auth","true");//需要验证用户名密码

        //关于qq邮箱,还要设置ssl加密,加上以下代码:
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        properties.put("mail.smtp.ssl.enable","true");
        properties.put("mail.smtp.ssl.socketFactory","sf");

        //使用javamail发送邮件5个步骤
        //1.创建定义整个应用程序所需的环境信息的session对象

        //qq邮箱特有
        Session session = Session.getDefaultInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                //发件人邮件用户名,授权码
                return new PasswordAuthentication("1468223447@qq.com", "qdizxmzgwhyogdga");
            }
        });
        //2、通过session得到transport对象
        Transport ts = session.getTransport();
        //3.使用邮箱的用户名和授权码连上邮件服务器
        ts.connect("smtp.qq.com","1468223447@qq.com","qdizxmzgwhyogdga");
        //4.创建邮件
        //注意需要传递session
        MimeMessage message = new MimeMessage(session);

        message.setSubject("简单文本邮件");
        //邮件主题
        message.setFrom(new InternetAddress("1468223447@qq.com"));
        //收件人

        message.setRecipient(Message.RecipientType.TO,new InternetAddress("1468223447@qq.com"));


        //邮件内容
        //*******************************************************************************************

        message.setContent("你好","text/html;charset=UTF-8");

        //*******************************************************************************************


        //5.发送邮件
        ts.sendMessage(message,message.getAllRecipients());
        System.out.println("发送邮件成功!");
        //6.关闭连接
        ts.close();

发送多文本邮件
MIME(多用途互联网邮件扩展类型)
MimebodyPart类
表示的是一个MIME消息,它和MimeMessage类一样,都是从Part接口继承过来。
MimeMultipart类
是抽象类Multipart的实现子类,用来组合多个MIME消息,- -个MimeMultipart对象可以包含多个代表MIME消息的MimeBodyPart对象。

发送图片邮件:

 Properties properties=new Properties();
        properties.setProperty("mail.host","smtp.qq.com");//设置qq邮件服务器
        properties.setProperty("mail.transport.protocol","smtp");//邮件发送协议
        properties.setProperty("mail.smtp.auth","true");//需要验证用户名密码

        //关于qq邮箱,还要设置ssl加密,加上以下代码:
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        properties.put("mail.smtp.ssl.enable","true");
        properties.put("mail.smtp.ssl.socketFactory","sf");

        //使用javamail发送邮件5个步骤
        //1.创建定义整个应用程序所需的环境信息的session对象

        //qq邮箱特有
        Session session = Session.getDefaultInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                //发件人邮件用户名,授权码
                return new PasswordAuthentication("1468223447@qq.com", "qdizxmzgwhyogdga");
            }
        });
        //可以查看程序发送邮件的运行状态
        session.setDebug(true);
        //2、通过session得到transport对象
        Transport ts = session.getTransport();
        //3.使用邮箱的用户名和授权码连上邮件服务器
        ts.connect("smtp.qq.com","1468223447@qq.com","qdizxmzgwhyogdga");
        //4.创建邮件
        //注意需要传递session
        MimeMessage message = new MimeMessage(session);

        message.setSubject("带有图片的邮件");
        //邮件主题
        message.setFrom(new InternetAddress("1468223447@qq.com"));
        //收件人
        message.setRecipient(Message.RecipientType.TO,new InternetAddress("1468223447@qq.com"));



        //邮件内容
        //*******************************************************************************************
        //准备图片数据
        MimeBodyPart image = new MimeBodyPart();
        //图片进行数据处理
        DataHandler dataHandler = new DataHandler(new FileDataSource("src/resources/bz.jpg"));
        image.setDataHandler(dataHandler);//在我们的body中放入这个处理完的图片数据
        image.setContentID("bz.jpg");//给图片设置一个ID,在后面可以使用

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

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

        //设置到消息中,保存修改
        message.setContent(mm);//把最后编辑完的邮件放入消息中
        message.saveChanges();
        //*******************************************************************************************


        //5.发送邮件
        ts.sendMessage(message,message.getAllRecipients());
        System.out.println("发送邮件成功!");
        //6.关闭连接
        ts.close();
       ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值