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

📄 sendmail.java

📁 Jodd是一个开源的公用Java基础类库
💻 JAVA
字号:
package jodd.mail;

import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Properties;

import javax.mail.Authenticator;
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;

/**
 * Sends e-mails in an easy way.
 *
 * @2do i18n
 */
public class SendMail {

	private static SmtpServer defaultSmtpServer = null;
	/**
	 * Sets default SMTP server.
	 *
	 * @param server default SMTP server
	 */
	public static void setDefaultSmtpServer(SmtpServer server) {
		defaultSmtpServer = server;
	}
	/**
	 * Returns default SMTP server.
	 *
	 * @return default SMTP server
	 */
	public static SmtpServer getDefaultSmtpServer() {
		return defaultSmtpServer;
	}


	// ---------------------------------------------------------------- send

	/**
	 * Sends an email through default SMTP server.
	 *
	 * @param email      email
	 *
	 * @exception MessagingException
	 */
	public static void send(Email email) throws MessagingException {
		send(email, null);
	}

	/**
	 * Sends an email through SMTP server.
	 *
	 * @param email      email
	 * @param smtpServer SMTP server or null for default one
	 *
	 * @exception MessagingException
	 */
	public static void send(Email email, SmtpServer smtpServer) throws MessagingException {
		if (smtpServer == null) {
			smtpServer = defaultSmtpServer;
		}

		Properties props = new Properties();
		props.put("mail.smtp.host", smtpServer.getHost());
		Authenticator auth = null;
		if (smtpServer.getUsername() != null) {
			props.put("mail.smtp.auth", "true");
			auth = new SmtpSimpleAuthenticator(smtpServer.getUsername(), smtpServer.getPassword());
		}
		Session session = Session.getInstance(props, auth);

		Message msg = new MimeMessage(session);
		msg.setFrom(new InternetAddress(email.getFrom()));

		int totalTo = email.getTo().length;
		InternetAddress[] address = new InternetAddress[totalTo];
		for (int i = 0; i < totalTo; i++) {
			address[i] = new InternetAddress(email.getTo()[i]);
		}
		msg.setRecipients(Message.RecipientType.TO, address);

		if (email.getCc() != null) {
			int totalCc = email.getCc().length;
			address = new InternetAddress[totalCc];
			for (int i = 0; i < totalCc; i++) {
				address[i] = new InternetAddress(email.getCc()[i]);
			}
			msg.setRecipients(Message.RecipientType.CC, address);
		}
		if (email.getBcc() != null) {
			int totalBcc = email.getBcc().length;
			address = new InternetAddress[totalBcc];
			for (int i = 0; i < totalBcc; i++) {
				address[i] = new InternetAddress(email.getBcc()[i]);
			}
			msg.setRecipients(Message.RecipientType.BCC, address);
		}

		msg.setSubject(email.getSubject());
		Date date = email.getSentDate();
		if (date == null) {
			date = new Date();
		}
		msg.setSentDate(date);
		HashMap headers = email.getHeaders();
		Iterator it = headers.keySet().iterator();
		while (it.hasNext()) {
			String name = (String) it.next();
			String value = (String) headers.get(name);
			msg.setHeader(name, value);
		}
		

		MimeBodyPart messageData = new MimeBodyPart();

		if (email.isHtmlMessage()) {
			messageData.setContent(email.getMessage(), "text/html");
		} else {
			//messageBodyPart.setContent(email.getMessage(), "text/plain; charset=\"Windows-1250\";");
			//messageBodyPart.setText(email.getMessage(), "Windows-1250");
			messageData.setText(email.getMessage());
		}

		Multipart multipart = new MimeMultipart();
		multipart.addBodyPart(messageData);

		int totalAttachments = email.getTotalAttachments();
		for (int i = 0; i < totalAttachments; i++) {
			multipart.addBodyPart(email.getAttachmentBodyPart(i));
		}
	
        msg.setContent(multipart);
		Transport.send(msg);
	}

}

⌨️ 快捷键说明

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