使用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协议,我们可以构建高效且可靠的邮件系统,实现与Exchange服务器的无缝交互,无论是发送商业邮件、自动化通知还是处理用户请求,都能提供强大的支持。在实际项目中,理解并熟练运用这些...
JavaMail是一种开源的Java库,它允许开发人员在Java应用程序中发送和接收电子邮件。IMAP(Internet Message Access Protocol)是一种标准的邮件访问协议,用于从邮件服务器检索邮件。Exchange 2007是微软的企业级...
在Java应用程序中发送电子邮件通常依赖于JavaMail API,这是一个强大的库,允许开发者通过SMTP、POP3或IMAP协议与邮件服务器进行交互。然而,当涉及到Microsoft Exchange Server时,直接使用JavaMail可能遇到一些...
总的来说,创建一个Java客户端通过Exchange服务器发送邮件涉及JavaMail API的使用、网络通信的配置以及可能的EWS交互。理解这些概念和技术,对于任何希望在Java环境中处理邮件任务的开发者来说都至关重要。
在Java编程环境中,发送Exchange邮件通常涉及到使用Exchange Web Services (EWS) API或者JavaMail API。EWS是一种基于SOAP协议的API,它允许程序与Microsoft Exchange Server进行交互,包括发送邮件、管理日历、获取...
JavaMail 还支持其他特性,如SSL/TLS加密、IMAP(互联网消息访问协议)用于接收邮件,以及使用EWS(Exchange Web Services)与Microsoft Exchange服务器交互。然而,由于JavaMail的复杂性,使用时需要对邮件服务器的...
JavaMail API支持多种邮件服务器,包括但不限于Apache James、Microsoft Exchange以及各种支持标准邮件协议的服务器。使用JavaMail API可以编写出跨平台的邮件处理应用,而且由于Java的跨平台特性,使用JavaMail API...
`SendMail.java`可能包含了创建`Message`对象、设置邮件属性(如发件人、收件人、主题和内容)以及调用`Transport.send()`方法发送邮件的过程。 `jbex-javamail`和`jbex-v1.4.8-eval`这两个文件名可能表示一个特定...
总的来说,通过jbex和JavaMail的组合,开发者可以轻松地在Java应用中实现与Exchange服务器的深度集成,不仅能够发送和接收邮件,还能利用Exchange的其他功能,如日程管理、任务分配等,这对于企业级的应用开发尤其...
1. **多协议支持**:JavaMail 支持多种邮件协议,如SMTP用于发送邮件,POP3和IMAP用于接收邮件,还有EWS(Exchange Web Services)用于与Microsoft Exchange服务器交互。 2. **MIME支持**:JavaMail 支持MIME(多...
此外,通过支持各种邮件协议,JavaMail可以与多种类型的邮件服务器进行交互,包括企业级的Exchange服务器。 总之,JavaMail为Java程序员提供了一个强大的工具,简化了邮件处理任务,无论是在Web应用、桌面应用还是...
JavaMail是Java编程环境中用于处理电子邮件的一套API,它提供了丰富的功能,允许开发者发送、接收、操作邮件。在JavaMail的开发过程中,通常会用到两个关键的JAR文件:`activation.jar`和`mail.jar`。 `activation....
在实际开发中,JavaMail还可以与其他技术结合,如Spring框架,通过其JavaMailSender接口简化邮件发送过程。JavaMail也支持使用MIME多部分消息来发送HTML邮件、附件以及嵌入式图片。 总之,JavaMail是一个功能强大的...
JavaMail是一个开源的Java API,它提供了邮件系统的访问接口,允许开发者发送、接收和管理电子邮件。这个API支持SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP4(Internet消息访问协议版本4)等标准协议。...
1. **SMTP协议支持**:JavaMail通过SMTP(简单邮件传输协议)允许开发者发送邮件。SMTP是互联网上标准的邮件传输协议,JavaMail通过`com.sun.mail.smtp`包提供了对SMTP的全面支持。 2. **POP3和IMAP协议支持**:...
使用JavaMail时,开发者需要添加相应的jar包到类路径中,然后通过导入相应的包,创建和配置Session,建立与邮件服务器的连接,创建Message,设置邮件属性,最后通过Transport发送邮件。对于接收邮件,需要获取Store...
JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送、接收和其他相关操作。它提供了标准的 javax.mail API,使得开发者能够轻松地在 Java 应用程序中集成邮件功能。这个压缩包文件包含了 JavaMail 相关的 JAR ...
在实际项目中,要使用"mail.jar",需要将其添加到项目的类路径中,然后就可以通过导入相关的JavaMail类和接口,编写发送和接收邮件的代码了。例如,`javax.mail.Session`用于配置邮件会话,`javax.mail.Transport`...
这个工具包允许开发者通过SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等标准协议发送、接收和管理电子邮件。在JavaMail中,可以方便地创建复杂的邮件,包括文本、HTML内容,甚至嵌入的...