2013-06-19 81 views
-3

我已经使用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());  
} 
+1

它是如何失败?你是否遇到异常,还是只是没有发送?首先想到的是,在发送邮件之前try块被中断 –

+0

我没有得到任何异常,只是没有得到send.Also SOP正在打印,邮件发送到收件人地址 – Tester

+0

这可能是任何东西。你有很多'mailsheet.getCell(7,1)'...所以在那里放一个断点,调试它,看看每个**属性获得的值是什么,并确保它是正确的。谁是电子邮件提供商?如果它在内部,请检查电子邮件服务器上的日志以查看是否发送了电子邮件请求。这也是一个糟糕的测试。该页面可能由于多种原因而“关闭”,您应该**定义**“下”意味着什么,并且尽管如此,还是有很多免费服务正在做**。 – Arran

回答

0

答案可能在于你没有向我们展示的代码位:测试URL的部分。 由于未找到页面,错误域名的响应代码与响应代码不同。另外,根据您要定位的系统,有可能找不到页面被重定向到索引页面,使检测更加困难。

+0

我打电话给方法driver.get(url);取得页面 – Tester

+0

和你在测试什么?另外,从你的更新代码看,如果driver.get()失败,driver.getTitle()也不会有任何帮助。 –