Jadual Kandungan
hello
Rumah 类库下载 java类库 JavaMail邮件开发

JavaMail邮件开发

Oct 14, 2016 pm 03:41 PM

一、只带有纯文本的邮件

  代码事例如下:

package com.lyh.sendemail;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

//发送邮件
public class MessageDemo1 {

    public static void main(String[] args) throws Exception{
        Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置
        props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的
        props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的
//        props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的
        props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关
        
        Session session = Session.getInstance(props);//发送邮件时使用的环境配置
        session.setDebug(true);
        MimeMessage message = new MimeMessage(session);
        
        //设置邮件的头
        message.setFrom(new InternetAddress("xxx@163.com"));
        message.setRecipients(Message.RecipientType.TO, "xxx@qq.com");
        message.setSubject("This is second message");
        //设置正文
        message.setContent("<h1 id="hello">hello</h1>", "text/html");
//        message.setText("<h1 id="hello">hello</h1>");//纯文本
        
        message.saveChanges();
        
        //发送邮件
        Transport ts = session.getTransport();
        ts.connect("xxx@163.com", "123456");       // 密码为授权码不是邮箱的登录密码
        ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法}
    }
}
Salin selepas log masuk

二、带有图片的邮件

  a、复杂邮件封装模型

1.png

  代码事例

package com.lyh.sendemail;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
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;

//发送邮件
public class MessageDemo2 {

    public static void main(String[] args) throws Exception{
        Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置
        
        props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的
        props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的
//        props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的
        props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关
        
        Session session = Session.getInstance(props);//发送邮件时使用的环境配置
        session.setDebug(true);
        MimeMessage message = new MimeMessage(session);
        
        //设置邮件的头
        message.setFrom(new InternetAddress("xxx@163.com"));
        message.setRecipients(Message.RecipientType.TO, "xxx@qq.com");
        message.setSubject("This is second message");
        //设置正文
        
        //搞出文本部分
        MimeBodyPart textPart = new MimeBodyPart();
        textPart.setContent("aaa<img  src=&#39;cid:mm&#39;/ alt="JavaMail邮件开发" >aaa", "text/html");
        
        //搞图片部分
        MimeBodyPart imagePart = new MimeBodyPart();
        imagePart.setContentID("mm");
        //把磁盘上的文件加到part中使用到了JAF框架
        DataHandler dh = new DataHandler(new FileDataSource("src/0.jpg"));
        imagePart.setDataHandler(dh);
        
        MimeMultipart mp = new MimeMultipart();
        mp.addBodyPart(textPart);
        mp.addBodyPart(imagePart);
        mp.setSubType("related");//有关系的
        
        message.setContent(mp);
        message.saveChanges();
        
        //发送邮件
        Transport ts = session.getTransport();
        ts.connect("xxx@163.com", "123456"); //密码为授权码不是邮箱的登录密码
        ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法
    }
}
Salin selepas log masuk

三、带有文本、图片、附件的邮件

  代码事例:

package com.lyh.sendemail;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
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 MessageDemo3 {

    public static void main(String[] args) throws Exception{

        Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置
        
        props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的
        props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的
//        props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的
        props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关
        
        Session session = Session.getInstance(props);//发送邮件时使用的环境配置
//        session.setDebug(true);
        MimeMessage message = new MimeMessage(session);
        
        //设置邮件的头
        message.setFrom(new InternetAddress("xxx@163.com"));
        message.setRecipients(Message.RecipientType.TO, "xxxqq.com");
        message.setSubject("这是一封复杂的邮件");
        //设置正文
        
        //搞出文本部分
        MimeBodyPart textPart = new MimeBodyPart();
        textPart.setContent("美女<img  src=&#39;cid:mm&#39;/ alt="JavaMail邮件开发" >aaa", "text/html;charset=UTF-8");
        
        //搞图片部分
        MimeBodyPart imagePart = new MimeBodyPart();
        imagePart.setContentID("mm");
        //把磁盘上的文件加到part中使用到了JAF框架
        DataHandler dh = new DataHandler(new FileDataSource("src/0.jpg"));
        imagePart.setDataHandler(dh);
        
        MimeMultipart mp = new MimeMultipart();
        mp.addBodyPart(textPart);
        mp.addBodyPart(imagePart);
        mp.setSubType("related");//有关系的
        
        MimeBodyPart textImagePart = new MimeBodyPart();    //将 MimeMultipart 添加到 MimeBodyPart实现附件的发送
        textImagePart.setContent(mp);
        
        //创建附件部分
        MimeBodyPart attachmentPart = new MimeBodyPart();
        dh = new DataHandler(new FileDataSource("src/账户.rar"));
        String filename = dh.getName();
        attachmentPart.setDataHandler(dh);
        
        //手工设置文件名  防止乱码使用  javaMail里的 MimeUtility进行编码
        attachmentPart.setFileName(MimeUtility.encodeText(filename)); 
        
        //最终的 MimeMultipart
        MimeMultipart finalMp = new MimeMultipart();
        finalMp.addBodyPart(attachmentPart);
        finalMp.addBodyPart(textImagePart);
        
        finalMp.setSubType("mixed");
        
        message.setContent(finalMp);
        message.saveChanges();
        
        //发送邮件
        Transport ts = session.getTransport();
        ts.connect("xxx@163.com", "123456"); //密码为授权码不是邮箱的登录密码
        ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法
    
    }
}
Salin selepas log masuk


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)