JavaMail 이메일 개발

高洛峰
풀어 주다: 2016-10-14 15:41:11
원래의
1644명이 탐색했습니다.

1. 일반 텍스트만 포함된 이메일

코드 예시는 다음과 같습니다.

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>hello</h1>", "text/html");
//        message.setText("<h1>hello</h1>");//纯文本
        
        message.saveChanges();
        
        //发送邮件
        Transport ts = session.getTransport();
        ts.connect("xxx@163.com", "123456");       // 密码为授权码不是邮箱的登录密码
        ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法}
    }
}
로그인 후 복사

2. 사진이 포함된 이메일

a. >

JavaMail 이메일 개발

코드 예시

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());//对象,用实例方法
    }
}
로그인 후 복사
3. 텍스트, 사진, 첨부 파일이 포함된 이메일

코드 예시:

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());//对象,用实例方法
    
    }
}
로그인 후 복사


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿