首页
JAVA笔记
数据库笔记
混乱记忆
小站记
您现在的位置
纯手写java发送邮件
简介: 很久以前在学习发送邮件的时候写的代码,今天在一个角落找到,把他发出来供大家参考。这个代码没有用到第三方包能让人更好的看清原理。

代码如下,不过javax.mail、javax.activation 包好像高版本的JDK都不打在一起了,需要单独去官方下载。

 

package com.lihuige.test;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import javax.activation.*;

;

public class TestEmail {
 public void SendEmailTest() {
  //构造邮件服务器特性说明
  Properties props = new Properties();
  props.put("mail.smtp.host", "smtp.163.com");
  props.put("mail.smtp.auth", "true"); //允许smtp校验  
  Session sendMailSession = Session.getInstance(props, null);

  try {

   //邮件对象
   Transport transport = sendMailSession.getTransport("smtp");
   //连接邮件服务器
   transport.connect("smtp.163.com", "mailUserName", "mailPassword");

   //邮件消息面板
   Message newMessage = new MimeMessage(sendMailSession);

   //设置mail主题  
   String mail_subject = "更改邮件发送人测试";
   newMessage.setSubject(mail_subject);

   //设置发信人地址  
   String strFrom = "mailUserName@163.com";
   strFrom = new String(strFrom.getBytes(), "8859_1");
   //InternetAddress 邮件地址 类型
   newMessage.setFrom(new InternetAddress(strFrom));
   //    Address addressFrom[] = { new InternetAddress("mailUserName@163.com"),new InternetAddress("mailUserName@163.com") };
   //    //改变发件人地址
   //    newMessage.addFrom(addressFrom);
   //设置收件人地址
   Address addressTo[] = { new InternetAddress("254928170@qq.com") };
   //收件人地址做为首选发送地址
   newMessage.setRecipients(Message.RecipientType.TO, addressTo);

   //设置mail正文  
   newMessage.setSentDate(new java.util.Date());
   String mail_text = "更改邮件发件人调试成功!我是小云朵 哈哈哈哈";
   newMessage.setText(mail_text);

   newMessage.saveChanges(); //保存发送信息  
   transport.sendMessage(newMessage, newMessage
     .getRecipients(Message.RecipientType.TO)); //发送邮件  

   transport.close();
   //Transport.send(newMessage);
   System.out.println("OK");
  } catch (Exception e) {
   System.out.println(e);
  }

 }

 public static void main(String args[]) throws Exception {
  TestEmail SEmail = new TestEmail();
  SEmail.SendEmailTest();

 }
}

最近更新