我已經使用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