侧边栏壁纸
博主头像
小白博主等级

just do it!

  • 累计撰写 60 篇文章
  • 累计创建 77 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Java实现发送邮件

小白
2018-05-03 / 0 评论 / 0 点赞 / 113 阅读 / 477 字

前提

1.要先保证发送方邮箱开启了IMAP/SMTP/POP3服务记录授权码(需要用到);

以网易邮箱为例:设置—>POP3/SMTP/IMAP—>勾上“POP3/SMTP服务”与“IMAP/SMTP服务”—>设置授权码

2.需要的jar包:mailapi.jar、pop3.jar、smtp.jar

下载地址

Code

import java.io.UnsupportedEncodingException;
import java.util.Properties;

import javax.mail.Address; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 
  
public class test { 
 
  /** 以网易邮箱为例
   * @param args 
   * @throws MessagingException 
   * @throws UnsupportedEncodingException 
   * @param my.user 发送方的邮箱
   * @param my.pw 发送邮箱的授权码
   * @param my.title 发送方的昵称
   * @param to 接收方邮箱
   */ 
  public static void main(String[] args) throws MessagingException, UnsupportedEncodingException { 
    MyEmail my=new MyEmail();
    String to="2811259714@qq.com";
    Properties props = new Properties();
    props.setProperty("mail.smtp.auth", "true");  
    props.setProperty("mail.transport.protocol", "smtp");  
    Session session = Session.getInstance(props);  
    session.setDebug(true);
    Message msg = new MimeMessage(session);  
    msg.setText("这是内容");  
    try {
        msg.setFrom(new InternetAddress(my.user,javax.mail.internet.MimeUtility.encodeText(my.nick)));
    } catch (Exception e) {
        e.printStackTrace();
    }  
    msg.setSubject("这是标题");
    Transport transport = session.getTransport();  
    transport.connect("smtp.163.com",25,my.user,my.pw);  
    transport.sendMessage(msg,  
            new Address[]{new InternetAddress(to)});  

    transport.close();  
  } 
 
} 

解析

以网易邮箱为例,my对象中存储了发送邮箱(my.user)、授权码(my.pw)与发送方昵称(my.nick)信息,to为接收方的邮箱;MimeMessage类表示整封邮件;Properties表示一个持久的属性集,用来存储配置邮件服务器的参数;msg.setText设置邮件对象的邮件内容;msg.setFrom设置发送方(邮箱与昵称,昵称编码要改编为encode);msg.setSubject设置邮件标题;transport.connect(“smtp.163.com”,25,my.user,my.pw)连接网易邮箱服务器;transport.sendMessage(msg, new Address[]{new InternetAddress(to)})发送邮件msg给邮箱to;

0

评论区