设为首页 收藏本站
查看: 652|回复: 0

[经验分享] 使用java mail api 和 apache mail api 发送email 代码示例

[复制链接]

尚未签到

发表于 2017-1-13 07:17:29 | 显示全部楼层 |阅读模式
  本文分别测试使用java mail api(http://www.oracle.com/technetwork/java/javamail/index.html)和 apache mail api(http://commons.apache.org/email/)发送邮件的功能。(其中要注意 apache mail 依赖于 java mail 。)测试代码如下:

import java.net.URL;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
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;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
import org.apache.commons.mail.SimpleEmail;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class JavaMail {

@Test
public void defaultSendMail() throws Exception {
String host = "smtp.sina.com";// "smtp.gmail.com"
String port = "25"; //"465"
Properties props = new Properties();
props.setProperty("mail.smtp.host", host);
props.setProperty("mail.smtp.port", port);
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.ssl.enable", "false");//"true"
props.setProperty("mail.smtp.connectiontimeout", "5000");
final String user = "***@sina.com";  //"***@gmail.com"
final String pwd = "***";
Session session = Session.getDefaultInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//登录用户名密码
return new PasswordAuthentication(user,pwd);
}
});
session.setDebug(true);
Transport transport = session.getTransport("smtp");//"smtps"
transport.connect(host,user,pwd);
//消息
MimeMessage message = new MimeMessage(session);
setMailContent(message);//。。。。。。。。。。。。。。。。。。
message.setSubject("邮件标题");
//消息发送者接收者设置
//message.setFrom(new InternetAddress(user,"发件人名称"));
message.addRecipients(Message.RecipientType.TO,new InternetAddress[]{
new InternetAddress("to1@163.com","to1昵称"),
new InternetAddress("to2@163.com","to2昵称")
});
message.saveChanges();
//发送
transport.send(message);
//Transport.send(message);
transport.close();
}
//设定邮件内容
private void setMailContent(MimeMessage message) throws MessagingException {
//方法一:只有文本邮件
//message.setContent("邮件内容..", "text/plain");//纯文本内容
//方法二:添加附件的邮件
Multipart part = new MimeMultipart();
BodyPart bodypart1 = new MimeBodyPart();
bodypart1.setText("邮件内容");
part.addBodyPart(bodypart1 );
BodyPart bodypart2 = new MimeBodyPart();
bodypart2.setFileName("fileName");
bodypart2.setDataHandler(new DataHandler(new FileDataSource("f:\\ok.txt")));
part.addBodyPart(bodypart2);
message.setContent(part);
}
@Test
public void apacheSendMail() throws Exception {
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.gmail.com");
email.setSSL(true);
email.setSmtpPort(465);
//email.setSslSmtpPort("465");
email.setTLS(true);//gmail
email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));
email.setFrom("h***@gmail.com");
email.setSubject("TestCommonMail");
email.setCharset("gbk");
//文本邮件
email.setMsg("This is a test mail ... :-)");
email.addTo("**to@qq.com");
email.send();
}
@Test
public void apacheSendHtmlMail() throws Exception {
HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.gmail.com");
email.setSSL(true);
email.setSmtpPort(465);
email.setTLS(true);//gmail
email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));
email.setFrom("h***@gmail.com");
email.addTo("**to@qq.com");
email.setSubject("TestCommonMail");
email.setCharset("gbk");
//html邮件
String cid = email.embed(new URL("http://www.google.com.tw/intl/en_com/images/srpr/logo1w.png"), "google logo");
email.setHtmlMsg("<html>The logo - <img src='cid:"+cid+"'></html>");
email.send();
}

@Test
public void apacheSendAttachMail() throws Exception {
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.gmail.com");
email.setSSL(true);
email.setSmtpPort(465);
email.setTLS(true);//gmail
email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));
email.setFrom("h***@gmail.com");
email.addTo("**to@qq.com");
email.setSubject("TestCommonMail");
email.setMsg("This is a test mail ... :-)");
email.setCharset("gbk");
EmailAttachment attach = new EmailAttachment();
attach.setName("attachFileName");
attach.setPath("f:\\ok.txt");
attach.setDescription(EmailAttachment.ATTACHMENT);

email.attach(attach );
email.send();
}
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-327622-1-1.html 上篇帖子: AIX 5.3下安装apache 2.2.11详细步骤 下篇帖子: Java之应用Apache Mail开源项目发送带附件的邮件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表