2014-10-28 40 views
0

我想通過Internet Explorer 9通過IBM Lotus Notes 8.5發送電子郵件。我爲此任務編寫了以下網頁。通過javascript中的蓮花筆記發送郵件

但是,沒有任何反應。

這是我的代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Lotus</title> 
    <script language="javascript" type="text/javascript"> 
    function SendScriptMail() 
{ 
    var mToMail = document.getElementById('txtMailId').value 
    var mSub = document.getElementById('txtSubject').value 
    var mMsg = document.getElementById('txtContent').value 
    var Maildb; 
    var UserName; 
    var MailDbName; 
    var MailDoc; 
    var AttachME; 
    var Session; 
    var EmbedObj; 
    var server; 
    try 
    { 
     // Create the Activex object for NotesSession 
     Session = new ActiveXObject('Notes.NotesSession'); 
     if(Session !=null) 
     { 
      // Get the user name to retrieve database 
      UserName = Session.UserName; 
      // Retrieve database from username 
      MailDbName = UserName.substring(0,1) + UserName.substring(
       UserName.indexOf(" " ,1) + 1 ,UserName.length) + ".nsf" 
      // Get database 
      Maildb = Session.GetDatabase("", MailDbName); 
      // open the database 
      if(Maildb.IsOpen != true) 
      { 
       Maildb.OPENMAIL(); 
      } 
      // Create the mail document 
      MailDoc = Maildb.CREATEDOCUMENT(); 
      // From email id (Username) 
      MailDoc.Form = 'Memo'; 
      // To email id 
      MailDoc.sendto = mToMail; 
      // Subject of the mail 
      MailDoc.Subject = mSub; 
      // Content of the mail 
      MailDoc.Body = mMsg 
       // if you want to save message on send, give true here 
       MailDoc.SAVEMESSAGEONSEND = false; 
      // send the mail (check ensure the internet connection) 
      MailDoc.Send(true); 
      // save the mail in draft (no need of internet connection) 
      MailDoc.Save(false, true); 
      // destroy the objects 
      Maildb = null; 
      MailDoc = null; 
      AttachME = null; 
      EmbedObj = null; 
      Session.Close(); 
      Session = null; 
      alert('Mail sent successfully'); 
     } 
     else 
     { 
      alert('Mail not sent'); 
     } 
    } 
    catch(err) 
    { 
     if(err == '[object Error]') 
     { 
      alert('Error while sending mail, 
     Please check Lotus Notes installed in your system'); 
     } 
     else 
     { 
      alert('Error while sending mail'); 
     } 
    } 
} 

    </script> 
</head> 
<body> 
    <table width="100%" height="100%"> 
     <tr> 
      <td width="40%" height="130px"> 
      </td> 
      <td> 
      </td> 
      <td width="40%"> 
      </td> 
     </tr> 
     <tr> 
      <td> 
      </td> 
      <td> 
       <table width="100%"> 
        <tr> 
         <td style="color: Black; font-size: 10px; font-family: Verdana; text-align: left;" 
          width="100px" valign="top"> 
          Mail Id</td> 
         <td> 
          <input id="txtMailId" style="color: #000000; font-size: 10px; font-family: Verdana; 
           height: 11px; text-align: left; top: auto; border: 1px solid #336699; text-decoration: none; 
           width: 176px;" type="text" maxlength="50" /></td> 
        </tr> 
        <tr> 
         <td style="color: Black; font-size: 10px; font-family: Verdana; text-align: left;" 
          valign="top"> 
          Subject</td> 
         <td> 
          <input id="txtSubject" style="color: #000000; font-size: 10px; font-family: Verdana; 
           height: 11px; text-align: left; top: auto; border: 1px solid #336699; text-decoration: none; 
           width: 176px;" type="text" maxlength="50" /></td> 
        </tr> 
        <tr> 
         <td style="color: Black; font-size: 10px; font-family: Verdana; text-align: left; 
          height: 79px;" valign="top"> 
          Content</td> 
         <td> 
          <textarea id="txtContent" cols="20" style="color: #000000; font-size: 10px; font-family: Verdana; 
           height: 100px; text-align: left; top: auto; border: 1px solid #336699; text-decoration: none; 
           width: 300px;"></textarea></td> 
        </tr> 
        <tr> 
         <td> 
         </td> 
         <td> 
          <input id="btnSend" type="button" onclick="SendScriptMail();" style="font-family: Verdana; font-size: 11px; text-align: center; 
           top: auto; width: 60px; background-color: #A55129; border: 1px solid #336699; 
           text-decoration: none; font-weight: normal; color: #FFFFFF;" value="Send" /> 
          <input id="btnCancel" style="font-family: Verdana; font-size: 11px; text-align: center; 
           top: auto; width: 60px; background-color: #A55129; border: 1px solid #336699; 
           text-decoration: none; font-weight: normal; color: #FFFFFF;" type="button" value="Cancel" onclick="sendEmail();"/></td> 
        </tr> 
       </table> 
      </td> 
      <td> 
      </td> 
     </tr> 
     <tr> 
      <td height="130px"> 
      </td> 
      <td> 
      </td> 
      <td> 
      </td> 
     </tr> 
    </table> 
</body> 
</html> 

任何建議我做錯了嗎?

我很感謝你的回答!

+0

我可以發現一個拼寫錯誤:「UerName」而不是「UserName」。 – 2014-10-28 08:18:10

+0

@PerHenrikLausten Thx我糾正它,並再次嘗試。然而,沒有任何反應。我沒有得到任何警報或任何東西;( – mrquad 2014-10-28 09:12:51

+1

有人在這裏有一個簡單的例子,可以工作:http://www.coderanch.com/t/561821/HTML-CSS-JavaScript/Invoking-Lotus-Notes-JavaScript-code。嘗試看看你是否可以實現這個目標 – 2014-10-28 09:20:36

回答

1

由於您使用本地ActiveX控件,您確定您正在使用的計算機上安裝了Notes客戶端(並且這是正確的DLL文件)嗎?您是否通過調試器(例如Firebug)運行Javascript以查看會發生什麼?

我不會這樣做,我會寫一個服務器端腳本,你從你的網頁上調用。見下面的代碼。然後,你只需在服務器上寫一個Lotusscript代理來進行調用。它會讀取您傳遞的參數併發送電子郵件。

<script> 
$(document).ready(function() { 
    // Update content div with dynamic content 
    $('#btnSend').click(function() { 
     // Get field values 
     var mailTo = $('#txtMailId').val(); 
     var subject = $('#txtSubject').val(); 
     var content = $('#txtContent').val(); 
     // Make Ajax call to server, passing address, subject and body as arguments 
     $.ajax({ 
      url: '/database.nsf/SendWebMail?OpenAgent', 
      data: { 
       mailto: mailTo, 
       subject:subject, 
       body:content 
      }, 
      cache: false 
     }).done(function(data) { 
      $('#returnMessage').html(data); 
     }); 
    }); 
}); 
</script>