import java.util.Date;
import java.util.Properties;

import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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;

/**
 * <p>Title:MailUtils.java</p>
 * <p>Description:发送邮件工具类 </p>
 */
public class MailUtils {
    private String server;       //邮箱服务器
    private String username;      //邮箱名
    private String password;      //密码
    public MailUtils(String server,String username,String password){
        this.server=server;
        this.username=username;
        this.password=password;
    }
    public void send(String to_mail,String from_mail,String to_title,String to_content){
        try{

//----接收邮件相关内容----
                String to_contents = codeToString(to_content);
                System.out.println("======="+to_content);
                String to_titles = codeToString(to_title);
                System.out.println("======="+to_title);
                Properties props=new Properties();

//------建立邮件会话------

props.put("mail.smtp.host",server);//smtp.163.com
            props.put("mail.smtp.auth","true");
            Session s=Session.getInstance(props);
            s.setDebug(true);
            MimeMessage message=new MimeMessage(s);
            //--给消息对象设置发件人、收件人、主题、发信时间--
            InternetAddress from=new InternetAddress(from_mail);

message.setFrom(from);//发件人
            InternetAddress to=new InternetAddress(to_mail);
            message.setRecipient(Message.RecipientType.TO,to);

message.setSubject(to_title);

message.setSentDate(new Date());

BodyPart mdp=new MimeBodyPart();

//给BodyPart对象设置内容和格式的编码方式
            mdp.setContent(to_content,"text/html;charset=utf-8");

//新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个)
            Multipart mm=new MimeMultipart();

//将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)
            mm.addBodyPart(mdp);

//把mm作为消息对象的内容
            message.setContent(mm);

message.saveChanges();

Transport transport=s.getTransport("smtp");

//以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址;第二个参数为用户名;第三个参数为密码
            transport.connect(server,username,password);
            transport.sendMessage(message,message.getAllRecipients());

transport.close();
        }catch(MessagingException e){
            e.printStackTrace();
            System.out.println("发送邮件失败!");

}
        
    }
    
    //处理中文字符串的函数
    public String codeToString(String str){
      String s=str;
      try{
            byte tempB[]=s.getBytes("ISO-8859-1");
            s=new String(tempB);
            return s;
       }catch(Exception e){
           return s;
       }  
    }

}

JAVA发送邮件工具类的更多相关文章

  1. Java 发送邮件工具类

    1.  Mail.java package util; import java.util.Date; import java.util.Properties; import javax.mail.Au ...

  2. Jmail发送邮件工具类

    好久没更新博客了,实在是拖延症严重啊,好可怕,先更新个工具类吧,之前写的发送邮件的小工具,话不多说上代码 import lombok.extern.slf4j.Slf4j; import java.u ...

  3. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  4. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  5. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  6. Java并发工具类 - CountDownLatch

    Java并发工具类 - CountDownLatch 1.简介 CountDownLatch是Java1.5之后引入的Java并发工具类,放在java.util.concurrent包下面 http: ...

  7. MinerUtil.java 爬虫工具类

    MinerUtil.java 爬虫工具类 package com.iteye.injavawetrust.miner; import java.io.File; import java.io.File ...

  8. MinerDB.java 数据库工具类

    MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...

  9. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

随机推荐

  1. linux下查看文件夹的大小

    du -sh du -sh dir_name/ du -sm * | sort -n //统计当前目录大小 并安大小排序 转自:http://www.jb51.net/LINUXjishu/77450 ...

  2. 基础知识《二》java的基本类型

    一.java基本数据类型 Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte.short.int.long.float.double.数值类型 ...

  3. java调用matlab函数

    如何将实验结果在matlab中可视化呢,下面使用java语言编程,调用matlab中的函数: 本人安装的是Matlab7.11.0 (R2010a)和 Eclipse 4.2 : 1)首先设置环境变量 ...

  4. Convert Sorted Array to Binary Search Tree With Minimal Height

    Given a sorted (increasing order) array, Convert it to create a binary tree with minimal height. Exa ...

  5. Linux卸载系统自带的JDK

    安装Linux后,一般系统都会自带openjdk,我们开发中都需要自己安装,所以需要卸载之前的,以CentOS为例,卸载方法如下: 首先执行命令查看存在哪些已安装的包 rpm -qa | grep j ...

  6. Ubuntu下用命令行快速打开各类型文件

    在Ubuntu下,通常用命令行打开文本文件,比如用命令gedit.more.cat.vim.less.但当需要打开其他格式文件时,比如pdf. jpg.mp3格式文件,咱们通常做法是进入到文件所在的目 ...

  7. 【python】choice函数

    来源:http://www.runoob.com/python/func-number-choice.html 描述 choice() 方法返回一个列表,元组或字符串的随机项. 语法 以下是 choi ...

  8. 【USACO】sprime

    有了前面的基础,做这道题真是so easy啊. 因为要分解后每个数都是素数,所以采用先生成短的素数,长的素数在短素数的基础上生成. 比如长度为1的素数只有 2 3 5 7, 那么符合要求的长度为2的素 ...

  9. jquery easy ui 1.3.4 窗口,对话框,提示框(5)

    5.1.window(窗口) 窗口我们在程序中会大量的使用,比如我们的添加.编辑都可以使用窗口实现,与winform的程序非常的类似.下面的代码是创建一个基本的窗口 $(function () { $ ...

  10. GDB调试笔记

    参考资料:GDB调试精粹及使用实例 # 调试实例 #include <iostream> #include <cstring> using namespace std; ][] ...