2014-10-28 80 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> 
相关问题