使用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>");
相关推荐
使用javamail通过imap协议收到Exchange2007中的邮件; 其他的邮箱也可以使用,但主要实现了对Exchange2007的收取。
使用JAVAMail代发邮件 资源源于不但搜索,自由源于不但努力
本段程序实现java通过exchange协议发送和接收邮件功能。实现了发送邮件、接收未读邮件和已读邮件的功能。采用微软官方提供的EWSJavaAPI_1.2.jar包完成此项功能。
javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码 查看debug 邮件处理过程发现邮件头没有编译, 内容是base64编码,所以邮箱收不到或者收到的是base64编码后的一堆乱码,
如何用javamail定时发送邮件
javamail发送、接收邮件详细教程
javamail实现发送邮件的小例子,简单易会,好用记得给好评哦!
javamail发送邮件实例 javamail 发送邮件 文本编辑器 kindeditor
javamail批量发送邮件
用javaMail实现公司内网邮箱邮件发送,包括邮件附件,邮件发送人和抄送人
如何用javamail定时发送邮件.doc
javamail 回执邮件资料
利用JavaMail API来发送Email的工具类 支持单发,群发及无限制数量的附件功能,并同时支持简单邮件和HTML两种格式的邮件内容 支持抄送,密送功能 具体使用参见其mail方法的使用示例
Struts2框架,javamail发送邮件,可以直接用main()调用,也可通过tomcat,在IE上运行,比较简单易懂。
利用JAVAMAIL实现的发送邮件的小例子
里面详细的介绍了JavaMail发邮件(包括单个附件和多个附件)的机制,还有JavaMail正常使用所需要的JAR包,源程序例子经过本人详细且严格的测试,大家下载下来就可以直接使用啦。
java 发邮件java 发邮件java 发邮件java 发邮件
javaMail发送邮件服务,附源码,源码亲测有效,采用maven工程,也包含mail-1.4.7.jar包
javamail发送邮件;支持群发、单次发送;文本发送,html发送
此源码是使用javamail发送邮件,可以实现静默发送邮件,可以发送附件资源等。有相应的使用说明,快捷好用