使用java发送邮件失败
我使用java和web驱动程序在我的应用程序中使用java mail API发送邮件。我的要求是在链接/url关闭时发送邮件。即使在我错误地给出url时发送邮件,但同时如果由于任何其他问题(未找到页面)导致url未加载,则发现邮件未被发送使用java发送邮件失败,java,email,Java,Email,我使用java和web驱动程序在我的应用程序中使用java mail API发送邮件。我的要求是在链接/url关闭时发送邮件。即使在我错误地给出url时发送邮件,但同时如果由于任何其他问题(未找到页面)导致url未加载,则发现邮件未被发送 public void SendMail(String url,String str) { try { Sheet mailsheet = w.getSheet("mail");
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());
}
publicsvoidsendmail(字符串url,字符串str)
{
尝试
{
Sheet mailsheet=w.getSheet(“邮件”);
字符串from=mailsheet.getCell(0,1.getContents().toString().trim();
String-toEmailID=mailsheet.getCell(1,1.getContents().toString().trim();
Properties props=新属性();
字符串mailprotocol=mailsheet.getCell(2,1.getContents().toString().trim();
字符串mailprotocoltype=mailsheet.getCell(3,1.getContents().toString().trim();
字符串mailhost=mailsheet.getCell(4,1.getContents().toString().trim();
字符串mailhostip=mailsheet.getCell(5,1.getContents().toString().trim();
字符串mailport=mailsheet.getCell(6,1.getContents().toString().trim();
字符串mailportid=mailsheet.getCell(7,1.getContents().toString().trim();
props.put(mailprotocoltype,mailprotocoltype);
props.put(mailhost,mailhostip);
道具放置(mailport,mailportid);
javax.mail.Session-mailSession=javax.mail.Session.getInstance(props);
Message msg=新的mimessage(mailSession);
msg.setFrom(新因特网地址(from));
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(toEmailID));
msg.setSubject(“测试总结”);
msg.setContent(“亲爱的管理员,
由于以下原因,
”+str,“text/html”)无法加载网站页面“+”+url+++”;
发送(msg);
System.out.println(“邮件已成功发送到带有错误信息的收件人地址。”);
}
捕获(例外e)
{
//系统输出打印ln(e);
System.out.println(“由于连接错误,邮件无法发送到收件人地址”);
}
}
公共空间x(){
SendMail(url,driver.getTitle());
}
答案可能在您没有向我们展示的代码中:测试URL的部分。
由于未找到页面,错误域名的响应代码与响应代码不同。此外,根据所针对的系统,可能会将未找到的页面重定向到索引页面,从而使检测更加困难。它是如何失败的?您是遇到异常,还是只是没有发送?第一个想法是,在发送邮件之前,try块被中断。我没有得到任何异常。它只是没有得到发送。另外,SOP正在打印邮件发送到收件人地址这可能是任何东西。你有很多
mailsheet.getCell(7,1)
…所以在那里放一个断点,调试它,查看每个属性得到的值,并确保它是正确的。谁是电子邮件提供商?如果是内部的,请检查电子邮件服务器上的日志,查看是否发送了电子邮件请求。这也是一个糟糕的测试。页面可能会“关闭”,原因有很多,你应该定义“关闭”的确切含义,尽管有很多免费服务正是这么做的。这与Selenium或WebDriver无关(后者不支持,与发送电子邮件无关)。您提供的代码片段中实际上没有Selenium/WebDriver;要获取页面,那么您要测试什么?另外,从您更新的代码来看,如果driver.get()失败,driver.getTitle()也不会有帮助。