内网java发送邮件_Java接口自动化测试(七) — 发送邮件

packagecom.test.email;importjavax.activation.DataHandler;importjavax.activation.FileDataSource;importjavax.mail.Message;importjavax.mail.Session;importjavax.mail.Transport;import javax.mail.internet.*;importjava.io.File;importjava.util.Properties;/***@authorlh

* @date 2020/7/16

* @description*/

public classSendEmail {//服务器地址

private static final String host = "smtp.163.com";//传输协议

private static final String protocol = "smtp";//发送人

private static final String from_username = "******@163.com";//密码(配置邮箱的授权码)

private static final String from_password = "******";//收件人

private static final String recipient = "******@qq.com";//附件

private static final String attach = "test\\report.html";//html格式

private static final String htmlString = "邮件测试链接";//发送邮件

public static voidsendEmail() {try{

Session session=SendEmail.createSession();

Message message=SendEmail.createMessage(session);

MimeMultipart multipart= newMimeMultipart();//HTML格式

multipart.addBodyPart(SendEmail.createHtmlContent());//发送附件

multipart.addBodyPart(SendEmail.createAttach());//设置文件

message.setContent(multipart);//消息传输

Transport transport =session.getTransport();//设置连接地址

transport.connect(host, from_username, from_password);//发送消息 message.getAllRecipients()获取邮件的所有收件人地址

transport.sendMessage(message, message.getAllRecipients());//关闭连接

transport.close();

System.out.println("邮件发送成功!");

}catch(Exception e) {

System.out.println("邮件发送失败!");

}

}//创建邮件会话

public staticSession createSession(){//构建properties文件

Properties properties = newProperties();//邮件协议

properties.setProperty("mail.transport.protocol",protocol);//服务器地址

properties.setProperty("mail.smtp.host",host);//身份认证

properties.put("mail.smtp.auth", "true");//设置是否使用ssl安全连接 ---一般都使用

properties.put("mail.smtp.ssl.enable", "true");//创建邮件会话

Session session =Session.getInstance(properties);returnsession;

}//构建邮件消息

public static Message createMessage(Session session) throwsException{

MimeMessage message= newMimeMessage(session);//设置主题

message.setSubject("这是一个测试报告");//设置文本消息

message.setText("这是测试文件,请勿回复!");//设置发送地址

message.setFrom(newInternetAddress(from_username));/***设置收件人地址

* Message.RecipientType.BCC :The "Bcc" (blind carbon copy) recipients.(“密件抄送”接收者)

* Message.RecipientType.CC :The "Cc" (carbon copy) recipients.“抄送”接收者

* Message.RecipientType.TO :The "To" (primary) recipients.“收件人”(主要)收件人。*/message.setRecipients(Message.RecipientType.TO,recipient);returnmessage;

}//发送邮件正文内容为HTML格式

public static MimeBodyPart createHtmlContent() throwsException{

MimeBodyPart bodyPart= newMimeBodyPart();

bodyPart.setContent(htmlString,"text/html;charset=UTF-8");returnbodyPart;

}//发送单个附件内容

public static MimeBodyPart createAttach() throwsException{

MimeBodyPart bodyPart= newMimeBodyPart();/*** 实现一个封装文件的简单 DataSource 对象。它通过 FileTypeMap 对象提供数据分类服务

* FileTypeMap是一个抽象类,为文件提供数据键入接口*/FileDataSource dataSource= new FileDataSource(newFile(attach));/*** 数据处理程序

* 创建引用指定 DataSource 的 DataHandler 实例。数据以字节流的形式存在。

* DataSource 将提供一个 InputStream 来访问数据*/DataHandler dataHandler= newDataHandler(dataSource);//添加邮件主体中

bodyPart.setDataHandler(dataHandler);//设置附件名称,MimeUtility.encodeText可以处理乱码问题

bodyPart.setFileName(MimeUtility.encodeText(dataSource.getName()));returnbodyPart;

}//测试

public static voidmain(String[] args){

SendEmail.sendEmail();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值