⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendmail.java

📁 一个java写得调用spring框架的接发邮件的程序
💻 JAVA
字号:
package com.eqifa.common.mail;

import com.eqifa.emar.common.util.Config;

import java.io.File;
import java.util.Hashtable;
import java.util.Enumeration;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

/**
 * 邮件发送类,支持文本和HTML格式,多个附件
 * @author zhoutao
 * @version 1.0
 */
public class SendMail {
    
	private Log log = LogFactory.getLog(getClass());
	private JavaMailSenderImpl javaMailSender;
    private MimeMessageHelper mimeMessageHelper;
    //邮件服务器信息
    private String host = Config.getString("mail.host");
    private String protocol = Config.getString("mail.protocol");
    private String port = Config.getString("mail.port");
    //邮件服务器验证信息
    private String userName = Config.getString("mail.userName");
    private String password = Config.getString("mail.password");
    private String ismailAuth = Config.getString("mail.auth");
    public static void main(String args[]){
    	try {
    		
    		SendMail sendMail = new SendMail();
    		sendMail.sendMailAsText("zhoutao","zhoutao@eqifa.com",new String[]{"zhoutao"},new String[]{"zhoutao_bj@163.com"},null,"test","test");
    	}catch (Exception e) {
    		e.printStackTrace();
    	}
    }
    
    /**
     * 使用默认参数发送邮件
     */
    public SendMail() throws Exception {
    	this(true);
    }
    
    /**
     * 使用发送邮件是否带附件
     */
    private SendMail(boolean isMultipart) throws Exception {
    	javaMailSender = new JavaMailSenderImpl();
    	javaMailSender.setHost(host);
    	javaMailSender.setProtocol(protocol);
    	javaMailSender.setPort(Integer.parseInt(port));
        if (ismailAuth.equals("true")) {//如果需要服务器需要验证
        	javaMailSender.setUsername(userName);
            javaMailSender.setPassword(password);
        	Properties p = new Properties();
        	p.put("mail.smtp.auth",ismailAuth);
        	javaMailSender.setJavaMailProperties(p);
        }
    	mimeMessageHelper = new MimeMessageHelper(javaMailSender.createMimeMessage(),isMultipart,"GB2312");
    }

    /**
     * 发送普通文本邮件,不带附件
     * @param fromTitle 发件人昵称
     * @param mailFrom 发件人地址
     * @param toTitles 收件人昵称
     * @param mailTos 收件人地址
     * @param mailCCs 抄送地址
     * @param subject 主题
     * @param strText 邮件内容
     */
    public void sendMailAsText(String fromTitle, String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs, String subject, String strText) 
    	throws Exception {
    	sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, false, null);
    }

    /**
     * 发送html格式邮件,不带附件
     * @param fromTitle 发件人昵称
     * @param mailFrom 发件人地址
     * @param toTitles 收件人昵称
     * @param mailTos 收件人地址
     * @param mailCCs 抄送地址
     * @param subject 主题
     * @param strText 邮件内容
     */
    public void sendMailAsHtml(String fromTitle, String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs, String subject, String strText) 
    	throws Exception{
    	sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, true, null);
    }
    
    /**
     * 发送文本邮件,带附件
     * @param fromTitle 发件人昵称
     * @param mailFrom 发件人地址
     * @param toTitles 收件人昵称
     * @param mailTos 收件人地址
     * @param mailCCs 抄送地址
     * @param subject 主题
     * @param strText 邮件内容
     * @param fileTable 附件表key为文件名value为File对象
     */
    public void sendMailAsTextHasAtts(String fromTitle, String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs, String subject, String strText, Hashtable fileTable) 
    	throws Exception {
    	sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, false, fileTable);
    }
    
    /**
     * 发送html邮件,带附件
     * @param fromTitle 发件人昵称
     * @param mailFrom 发件人地址
     * @param toTitles 收件人昵称
     * @param mailTos 收件人地址
     * @param mailCCs 抄送地址
     * @param subject 主题
     * @param strText 邮件内容
     * @param fileTable 附件表key为文件名value为File对象
     */
    public void sendMailAsHtmlHasAtts(String fromTitle, String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs, String subject, String strText, Hashtable fileTable)
    	throws Exception {
    	sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, true, fileTable);
    }
    
    /**
     * 发送邮件
     * @param fromTitle 发件人昵称
     * @param mailFrom 发件人地址
     * @param toTitles 收件人昵称
     * @param mailTos 收件人地址
     * @param mailCCs 抄送地址
     * @param subject 主题
     * @param strText 邮件内容
     * @param html 邮件格式
     * @param fileTable 附件表key为文件名value为File对象
     */
    private void sendMail(String fromTitle, String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs, String subject, String strText, boolean html, Hashtable fileTable) 
    	throws Exception {
    	if (null != mailTos) {
    		if (null == toTitles) {
    			mimeMessageHelper.setTo(mailTos);
    		} else {
    			for (int i=0; i<mailTos.length; i++) {
    				if (i > toTitles.length || toTitles.length == 0) {
    					mimeMessageHelper.addTo(mailTos[i]);
    				} else {
    					mimeMessageHelper.addTo(mailTos[i],toTitles[i]);
    				}
    			}
    		}
    	}
    	if (null != mailFrom) {
    		if (null != fromTitle) {
    			mimeMessageHelper.setFrom(mailFrom,fromTitle);
    		} else {
    			mimeMessageHelper.setFrom(mailFrom);
    		} 
    	}
    	if (null != mailCCs) {
    		mimeMessageHelper.setCc(mailCCs);
    	}
    	if (null != subject) {
    		mimeMessageHelper.setSubject(subject);
		}
    	if (null != strText) {
    		if (html) {
    			mimeMessageHelper.setText(strText, true);
    		} else {
    			mimeMessageHelper.setText(strText, false);
    		}
		}
    	if (null != fileTable) {
    		Enumeration e = fileTable.keys();
    		while (e.hasMoreElements()) {
    			String key = (String)e.nextElement();
    			File value = (File)fileTable.get(key);
    			mimeMessageHelper.addAttachment(key, value);
    		}
    	}
    	javaMailSender.send(mimeMessageHelper.getMimeMessage());
    }
    
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -