我已经使用java邮件API在我的应用程序中使用java和web driver发送邮件。我的要求是每当链接/ url关闭时发送邮件。即使邮件发送时,我给网址不正确,但同时如果由于任何其他问题(未找到网页)而导致网址未加载,则发现邮件没有发送。邮件发送失败使用java
public void SendMail(String url,String str)
{
try
{
Sheet mailsheet = w.getSheet("mail");
String from = mailsheet.getCell(0,1).getContents().toString().trim();
String toEmailID=mailsheet.getCell(1,1).getContents().toString().trim();
Properties props = new Properties();
String mailprotocol = mailsheet.getCell(2,1).getContents().toString().trim();
String mailprotocoltype = mailsheet.getCell(3,1).getContents().toString().trim();
String mailhost = mailsheet.getCell(4,1).getContents().toString().trim();
String mailhostip = mailsheet.getCell(5,1).getContents().toString().trim();
String mailport=mailsheet.getCell(6,1).getContents().toString().trim();
String mailportid=mailsheet.getCell(7,1).getContents().toString().trim();
props.put(mailprotocol,mailprotocoltype);
props.put(mailhost,mailhostip);
props.put(mailport,mailportid);
javax.mail.Session mailSession =javax.mail.Session.getInstance(props);
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(toEmailID));
msg.setSubject("Test Summary");
msg.setContent("<html><body>Dear Admin,<br> Website page "+ "<b><i>"+url + "</b></i>"+" cannot be loaded due to the following :<br> <br></body></html>"+str,"text/html");
Transport.send(msg);
System.out.println("Mail is successfully sent to Recipient address with Error information.");
}
catch(Exception e)
{
//System.out.println(e);
System.out.println("Mail cannot be send to Recipient address due to connection error");
}
}
public void x() {
SendMail(url,driver.getTitle());
}
它是如何失败?你是否遇到异常,还是只是没有发送?首先想到的是,在发送邮件之前try块被中断 –
我没有得到任何异常,只是没有得到send.Also SOP正在打印,邮件发送到收件人地址 – Tester
这可能是任何东西。你有很多'mailsheet.getCell(7,1)'...所以在那里放一个断点,调试它,看看每个**属性获得的值是什么,并确保它是正确的。谁是电子邮件提供商?如果它在内部,请检查电子邮件服务器上的日志以查看是否发送了电子邮件请求。这也是一个糟糕的测试。该页面可能由于多种原因而“关闭”,您应该**定义**“下”意味着什么,并且尽管如此,还是有很多免费服务正在做**。 – Arran