JavaMail

javamail1_4_7:导入以下架包即可

SMTP:发邮件协议

pop3:接收邮件协议(第三版)

一、不带附件的JavaMail

package javamail;

import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import org.junit.Test;

public class JavaMailTest {

    @Test
    public void fun() throws MessagingException {
        /*
         * 1.获取session,类似connection,这里指的是连接服务器
         */
        Properties props = new Properties();// 设置配置参数
        props.setProperty("mail.host", "smtp.126.com");// 设置服务器
        props.setProperty("mail.smtp.auth", "true");// 设置是否需要认证,比如是否需要密码等

        Authenticator authenticator = new Authenticator() {//登录 认证
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username,password);//该邮箱的用户名和密码(其实不是密码,出于安全考虑第三方客户端需要使用授权码,需要在邮箱服务端开启,否则会报错550错误)
            }
        };
        Session session = Session.getInstance(props, authenticator);

        /*
         * 设置邮件信息
         */
        MimeMessage msg = new MimeMessage(session);//邮件对象
        msg.setFrom(new InternetAddress("x_126mail@126.com"));//设置发件人的邮箱地址
        msg.setRecipients(RecipientType.TO, "x_163mail@163.com");//设置收件的邮箱地址,第一接收者
        //msg.setRecipients(RecipientType.CC, address);//设置收件的邮箱地址,抄送:给该邮箱也发送一份,第一接收者(所有的收件人都)能看到
        //msg.setRecipients(RecipientType.BCC, address);//设置收件的邮箱地址,暗送:给该邮箱暗地里也发送一份,除了该接收者其他人都不知道

        msg.setSubject("测试");//主题
        msg.setContent("就是javaMail的测试", "text/html;charset=utf-8");//内容
        
        /*
         * 发送邮件
         */
        Transport.send(msg);
        
    }
}

————————————————————————————————————————————————————————
二、带附件的JavaMail

package javamail;
/*
 * 带有附件的javamail的测试
 */

import java.io.File;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
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.MimeMessage.RecipientType;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

import org.junit.Test;

import com.sun.mail.util.MimeUtil;

public class JavaMailTest {
    @Test
    public void fun() throws Exception {

        /*
         * 1.获取session
         */
        Properties props = new Properties();
        props.setProperty("mail.host", "smtp.126.com");// 服务器
        props.setProperty("mail.smtp.auth", "true");// 是否验证

        Authenticator authenticator = new Authenticator() {// 验证
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // TODO Auto-generated method stub
                return new PasswordAuthentication(username, password);// 登录该服务器
            }
        };
        Session session = Session.getInstance(props, authenticator);

        /*
         * 2.获取message
         */
        MimeMessage msg = new MimeMessage(session);
        msg.setFrom(new InternetAddress("x_126mail@126.com"));// 发件人邮箱地址
        msg.setRecipients(RecipientType.TO, "x_163mail@163.com");// 收件人
        msg.setSubject("带有附件的javamail测试");
        /*
         * 内容不再单一,而是由文本和附件组成,也叫做mail多部件MimeMultipart,其实就是一个集合
         */
        MimeMultipart list = new MimeMultipart();
        // 创建mail多部件对象
        MimeBodyPart part = new MimeBodyPart();
        MimeBodyPart part2 = new MimeBodyPart();
        // 添加多个部件内容
        part.setContent("我带有附件,哈哈。。。", "text/html;charset=utf-8");
        part2.attachFile(new File("D:/[www.java1234.com]java_ee_api_中英文对照版.chw"));//附件
        part2.setFileName(MimeUtility.encodeText("javaee中英文对照api.chw"));//附件新的名称,encodeText:用来处理中文乱码问题
        
        // 多部件添加
        list.addBodyPart(part);
        list.addBodyPart(part2);
        //添加邮件内容
        msg.setContent(list);
        // 发送
        Transport.send(msg);
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值