10H 高级 WebDriver – 发送带有附件的电子邮件
嗨冠军! 现在我们已经有了 PDF 格式的 JUnit 报告,让我们将其附加到电子邮件中并发送给各个项目利益相关者。 因此,今天我们主要将仅使用 Java。 大家都来一杯咖啡(Java)!
我们将研究两个类。
- – 此类包含用于发送电子邮件的所有代码。
InvokeMail.java
– 通过提供从地址到地址,主题行和一些文本来调用SendMail.java
。
SendMail.java
InvokeMail.java
package com.blog.junitTests;
import javax.mail.MessagingException;
import com.blog.utility.SendMail;
/*
* Invokes SendMail.java
*/
public class InvokeMail {
public static void main(String[] args) throws MessagingException {
String to[] = {"[[email protected]](/cdn-cgi/l/email-protection)"};
SendMail.send("[[email protected]](/cdn-cgi/l/email-protection)", to, "JUnit Report", "Check the PDF attachment.");
}
解释
直接看一下代码会使我们感到难以接受。 让我们一次了解一个摘要。
与往常一样,我们的第一步是下载几个 JAR。
activation.jar
javax.mail-1.6.1.jar
我还将它们都放在了我们的 中,以及作为本文一部分处理的所有其他代码文件中。
将这些 JAR 添加到我们的项目构建路径中。 我们之前已经多次看到此程序,因此我不再重复(有关详细说明,请参阅此文章的步骤 3)。
1.编写所有代码的方法,以便我们可以从任何类轻松地调用它。
public static void send(String from, String tos[], String subject,
String text) throws MessagingException {}
3.获取会话对象并传递您的电子邮件帐户的凭据(您在地址中提到的凭据)。
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[[email protected]](/cdn-cgi/l/email-protection)","pass1234");// change accordingly
}
});
4.现在是有趣的部分。 我们将指定“发件人”和“收件人”地址。
message.setFrom(new InternetAddress(from));
for (String to : tos) {
message.addRecipient(Message.RecipientType.TO,
}
如果您只想将此电子邮件发送给一个人,请更改以下代码,
如果您希望将其发送给抄送给某些人的用户,请按以下所示更改代码,
message.addRecipient(Message.RecipientType.CC,new InternetAddress(cc));
5.将主题行设置为message.setSubject(subject);
6.要发送,
- 普通短信
- 实际的 HTML 消息尽可能多
message.setContent("<h1>This is actual message</h1></br></hr>" + text, "text/html");
- 文本和附件(这就是我们想要的),
// Set the attachment path
String filename = "E:\\Selenium\\junit.pdf";
BodyPart objMessageBodyPart = new MimeBodyPart();
objMessageBodyPart.setContent("<h1>Mail from Selenium Project!</h1></br>" + text, "text/html");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(objMessageBodyPart);
objMessageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(filename);
objMessageBodyPart.setDataHandler(new DataHandler(source));
objMessageBodyPart.setFileName(filename);
multipart.addBodyPart(objMessageBodyPart);
message.setContent(multipart);
7.用简单的一行发送电子邮件,
了解InvokeMail.java,
String to[] = {"[[email protected]](/cdn-cgi/l/email-protection)"};
SendMail.send("[[email protected]](/cdn-cgi/l/email-protection)", to, "JUnit Report", "Check the PDF attachment.");
在“运行方式-> Java 应用”下,Eclipse IDE 控制台的输出如下所示,
该电子邮件将在收件人的收件箱中接收。
显示生成的带有附件的电子邮件,以供您参考。
注意: 当心! 您可能碰到“javax.mail.AuthenticationFailedException
”。 发生此异常的主要原因是 Google 提供的安全性和保护功能。 一种简单的解决方法是,通过单击链接 https://www.google.com/settings/security/lesssecureapps 来打开“允许安全程度较低的应用”的访问以进行测试。
实验愉快! 祝你今天愉快!