2013-06-19 118 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()也不會有任何幫助。 –