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

📄 sendattachmentmailutil.java

📁 网上商城代码
💻 JAVA
字号:
package com.fendou.util.mail;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

public class SendAttachmentMailUtil {
	private MimeMessage message;
	private Properties props;
	private Session session;
	private MimeMultipart mp;
	private String name = "";
	private String password = "";
	
	public SendAttachmentMailUtil(String host,String name,String password){
		this.name = name;
		this.password = password;
	    props = System.getProperties();
    	// 设置SMTP主机
    	props.put("mail.smtp.host", host);
    	//设置SMTP验证属性
    	props.put("mail.smtp.auth", "true");
    	// 获得邮件会话对象
    	FendouAuthenticator auth = new FendouAuthenticator(name,password);
    	session = Session.getDefaultInstance(props, auth);
    	// 创建MIME邮件对象
        message = new MimeMessage(session);
	}
	/**
	 * 设置邮件发送人
	 * @param from
	 */
	public void setFrom(String from)
	{
		try {
			message.setFrom(new InternetAddress(from));
		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 设置邮件收件人
	 * @param to
	 */
	public void setTo(String to)
	{
		try {
			message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 设置邮件主题
	 * @param subject
	 */
	public void setSubject(String subject)
	{
		try {
			message.setSubject(subject);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * 设置邮件正文
	 * @param text
	 */
	public  void setContent(String content) {
		try {			
			BodyPart bp = new MimeBodyPart();			
			bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=gb2312>"
							+ content, "text/html;charset=GB2312");
			mp.addBodyPart(bp);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * 添加附件
	 * @param filename
	 */
	public void addAttachMent(String filename)
	{
		try {
			BodyPart bp = new MimeBodyPart();
			FileDataSource fileds = new FileDataSource(filename);
			bp.setDataHandler(new DataHandler(fileds));
			bp.setFileName(MimeUtility.encodeText(fileds.getName(),"gb2312","B"));
			mp.addBodyPart(bp);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * 发送邮件
	 * @return
	 */
	public boolean send() {
		try {
			message.setContent(mp);
			message.saveChanges();
			//创建SMTP邮件协议发送对象
			Transport transport = session.getTransport("smtp");
			//取得与邮件服务器的连接
			transport.connect((String) props.get("mail.smtp.host"), name,password);
			//通过邮件服务器发送邮件
			transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
			transport.close();
			return true;
		} catch (NoSuchProviderException e) {
			e.printStackTrace();
			return false;
		} catch (MessagingException e) {
			e.printStackTrace();
			return false;
		}
	}

}

⌨️ 快捷键说明

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