通过javascript中的lotus notes发送邮件

时间:2014-10-28 07:40:26

标签: javascript email lotus-notes lotus

我想通过Internet Explorer 9通过IBM Lotus Notes 8.5发送电子邮件。我为此任务编写了以下网页。

然而,没有任何反应。

这是我的代码:

<!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>

任何建议我做错了什么?

感谢您的回答!

1 个答案:

答案 0 :(得分: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>