`

JavaMail通过Exchange发送邮件

    博客分类:
  • java
 
阅读更多

使用Exchange Server邮件服务器发送邮件的特殊之处在于用户名username必须添加所在域的前缀,比如要使用域domain中的用户demo@sample.com来发送邮件,那么登录名要改成domain\demo,而不是普通stmp服务器中的demo@sample.com。 

下面贴出演示代码: 

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;

public class Mailer {
	private String host;
	private String auth;
	private String username;
	private String domainUser;
	private String password;

	public boolean send(String[] to, String[] cc, String[] bcc, String subject, String content) throws MessagingException {
		Properties props = new Properties();
		props.put("mail.smtp.host", host);
		props.put("mail.smtp.auth", auth);
		Session s = Session.getInstance(props);
		//		s.setDebug(true);

		MimeMessage message = new MimeMessage(s);

		InternetAddress from = new InternetAddress(username);
		message.setFrom(from);
		InternetAddress[] Toaddress = new InternetAddress[to.length];
		for (int i = 0; i < to.length; i++)
			Toaddress[i] = new InternetAddress(to[i]);
		message.setRecipients(Message.RecipientType.TO, Toaddress);

		if (cc != null) {
			InternetAddress[] Ccaddress = new InternetAddress[cc.length];
			for (int i = 0; i < cc.length; i++)
				Ccaddress[i] = new InternetAddress(cc[i]);
			message.setRecipients(Message.RecipientType.CC, Ccaddress);
		}

		if (bcc != null) {
			InternetAddress[] Bccaddress = new InternetAddress[bcc.length];
			for (int i = 0; i < bcc.length; i++)
				Bccaddress[i] = new InternetAddress(bcc[i]);
			message.setRecipients(Message.RecipientType.BCC, Bccaddress);
		}
		message.setSubject(subject);
		message.setSentDate(new Date());

		BodyPart mdp = new MimeBodyPart();
		mdp.setContent(content, "text/html;charset=utf-8");
		Multipart mm = new MimeMultipart();
		mm.addBodyPart(mdp);
		message.setContent(mm);

		message.saveChanges();
		Transport transport = s.getTransport("smtp");
		transport.connect(host, (null == domainUser) ? username : domainUser, password);
		transport.sendMessage(message, message.getAllRecipients());
		transport.close();
		return true;
	}

	public Mailer(String host, String auth, String domainUser, String username, String password) {
		super();
		this.host = host;
		this.auth = auth;
		this.domainUser = domainUser;
		this.username = username;
		this.password = password;
	}
}

 调用: 

new Mailer("smtp.sample.com", "true", "domain\\demo", "demo@sample.com", "password").send(new String[] { "to@mail.com" }, null, null, "demo_title", "<h3>test</h3>");

 

分享到:
评论

相关推荐

    Java通过Exchange协议发送和接收邮件

    总之,通过Java结合Exchange协议,我们可以构建高效且可靠的邮件系统,实现与Exchange服务器的无缝交互,无论是发送商业邮件、自动化通知还是处理用户请求,都能提供强大的支持。在实际项目中,理解并熟练运用这些...

    javamail通过imap协议收取邮件(Exchange2007)

    JavaMail是一种开源的Java库,它允许开发人员在Java应用程序中发送和接收电子邮件。IMAP(Internet Message Access Protocol)是一种标准的邮件访问协议,用于从邮件服务器检索邮件。Exchange 2007是微软的企业级...

    MS Exchange Server javamail发邮件jar包和demo

    在Java应用程序中发送电子邮件通常依赖于JavaMail API,这是一个强大的库,允许开发者通过SMTP、POP3或IMAP协议与邮件服务器进行交互。然而,当涉及到Microsoft Exchange Server时,直接使用JavaMail可能遇到一些...

    java-exchange-mail-client:Java客户端通过交换服务器发送邮件

    总的来说,创建一个Java客户端通过Exchange服务器发送邮件涉及JavaMail API的使用、网络通信的配置以及可能的EWS交互。理解这些概念和技术,对于任何希望在Java环境中处理邮件任务的开发者来说都至关重要。

    java发送exchange邮件

    在Java编程环境中,发送Exchange邮件通常涉及到使用Exchange Web Services (EWS) API或者JavaMail API。EWS是一种基于SOAP协议的API,它允许程序与Microsoft Exchange Server进行交互,包括发送邮件、管理日历、获取...

    java 发送邮件 javamail

    JavaMail 还支持其他特性,如SSL/TLS加密、IMAP(互联网消息访问协议)用于接收邮件,以及使用EWS(Exchange Web Services)与Microsoft Exchange服务器交互。然而,由于JavaMail的复杂性,使用时需要对邮件服务器的...

    JavaMail-1.5 API

    JavaMail API支持多种邮件服务器,包括但不限于Apache James、Microsoft Exchange以及各种支持标准邮件协议的服务器。使用JavaMail API可以编写出跨平台的邮件处理应用,而且由于Java的跨平台特性,使用JavaMail API...

    邮件发送,支持exchange类型 jar包

    `SendMail.java`可能包含了创建`Message`对象、设置邮件属性(如发件人、收件人、主题和内容)以及调用`Transport.send()`方法发送邮件的过程。 `jbex-javamail`和`jbex-v1.4.8-eval`这两个文件名可能表示一个特定...

    jbex javamail jar

    总的来说,通过jbex和JavaMail的组合,开发者可以轻松地在Java应用中实现与Exchange服务器的深度集成,不仅能够发送和接收邮件,还能利用Exchange的其他功能,如日程管理、任务分配等,这对于企业级的应用开发尤其...

    javamail 1.4.3 mail.jar 1.4.3 jar 包+源代码下载 天涯浪子

    1. **多协议支持**:JavaMail 支持多种邮件协议,如SMTP用于发送邮件,POP3和IMAP用于接收邮件,还有EWS(Exchange Web Services)用于与Microsoft Exchange服务器交互。 2. **MIME支持**:JavaMail 支持MIME(多...

    javamail相关的jar

    此外,通过支持各种邮件协议,JavaMail可以与多种类型的邮件服务器进行交互,包括企业级的Exchange服务器。 总之,JavaMail为Java程序员提供了一个强大的工具,简化了邮件处理任务,无论是在Web应用、桌面应用还是...

    JavaMail开发包

    JavaMail是Java编程环境中用于处理电子邮件的一套API,它提供了丰富的功能,允许开发者发送、接收、操作邮件。在JavaMail的开发过程中,通常会用到两个关键的JAR文件:`activation.jar`和`mail.jar`。 `activation....

    javamail所需要的jar包

    在实际开发中,JavaMail还可以与其他技术结合,如Spring框架,通过其JavaMailSender接口简化邮件发送过程。JavaMail也支持使用MIME多部分消息来发送HTML邮件、附件以及嵌入式图片。 总之,JavaMail是一个功能强大的...

    JAF+JavaMail包

    JavaMail是一个开源的Java API,它提供了邮件系统的访问接口,允许开发者发送、接收和管理电子邮件。这个API支持SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP4(Internet消息访问协议版本4)等标准协议。...

    javamail-1.4.5

    1. **SMTP协议支持**:JavaMail通过SMTP(简单邮件传输协议)允许开发者发送邮件。SMTP是互联网上标准的邮件传输协议,JavaMail通过`com.sun.mail.smtp`包提供了对SMTP的全面支持。 2. **POP3和IMAP协议支持**:...

    javamail1.4.5和javax.mail-1.5.5.jar

    使用JavaMail时,开发者需要添加相应的jar包到类路径中,然后通过导入相应的包,创建和配置Session,建立与邮件服务器的连接,创建Message,设置邮件属性,最后通过Transport发送邮件。对于接收邮件,需要获取Store...

    javaMail jar和api

    JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送、接收和其他相关操作。它提供了标准的 javax.mail API,使得开发者能够轻松地在 Java 应用程序中集成邮件功能。这个压缩包文件包含了 JavaMail 相关的 JAR ...

    javamail-1_3.zip内含mail.jar

    在实际项目中,要使用"mail.jar",需要将其添加到项目的类路径中,然后就可以通过导入相关的JavaMail类和接口,编写发送和接收邮件的代码了。例如,`javax.mail.Session`用于配置邮件会话,`javax.mail.Transport`...

    javamail工具包

    这个工具包允许开发者通过SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等标准协议发送、接收和管理电子邮件。在JavaMail中,可以方便地创建复杂的邮件,包括文本、HTML内容,甚至嵌入的...

Global site tag (gtag.js) - Google Analytics