【问题标题】:Error sending MIME mail runtime error in xpages在 xpages 中发送 MIME 邮件运行时错误时出错
【发布时间】:2014-11-15 08:55:57
【问题描述】:


我想从 xPages 发送电子邮件。我创建了一个测试按钮并向其添加了一个简单的操作“发送邮件”,但是当我单击它发送测试电子邮件时,我收到了这个运行时错误:

异常
发送 MIME 邮件时出错

我也尝试使用此 SSJS 发送电子邮件:

var doc:NotesDocument = database.createDocument();
doc.replaceItemValue("form", "Memo");
doc.replaceItemValue("sendTo", "daniel.recio@slug.es");
doc.replaceItemValue("subject", "hi there!");
doc.replaceItemValue("body", "content here");
doc.send();

但我得到了这个运行时错误:

执行 JavaScript 动作表达式脚本解释器时出错 错误,行=6,列=5:[TypeError] 调用方法发生异常 NotesDocument.send() null

感谢您的帮助。
谢谢

【问题讨论】:

  • 检查服务器上的 XPages 日志文件以了解错误背后的详细信息,并告知我们。为了轻松访问日志文件,请使用 OpenNTF 中的 XPages 日志文件阅读器

标签: javascript email xpages xpages-ssjs mime-mail


【解决方案1】:

对于那些希望使用它的人,OpenNTF Domino API 有一个 DominoEmail 类,旨在简化电子邮件的创建。有一个用于基本文本电子邮件的简单两行版本:

DominoEmail myEmail = new DominoEmail();
myEmail.createSimpleEmail("test@myenv.com", "", "", "Demo Email", "This is a test email from the OpenNTF Domino API", "")

参数是Object toNames、Object ccNames、Object bccNames、String Subject、Object body、String sender。收件人的对象可以是列表、数组或以逗号分隔的电子邮件地址字符串。主体的 Object 可以是 StringBuilder、String 或 MIMEEntity。

理论上,用于此的 SSJS 将是:

var myEmail:org.openntf.domino.email.DominoEmail = new org.openntf.domino.email.DominoEmail();
myEmail.createSimpleEmail("test@myenv.com", "", "", "Demo Email", "This is a test email from the OpenNTF Domino API", "")

但是,我没有对此进行测试,SSJS 转换为 Java 类的能力可能有点随意。它可能需要new java.lang.String("test@myEnv.com")

【讨论】:

    【解决方案2】:

    我已经创建了如下代码发送邮件的功能:

    function sendDocument(memsendto,memcopyto,memsubject,membody,memprincipal) {
    var memo:NotesDocument = database.createDocument();
    var stream = session.createStream();
    var body = memo.createMIMEEntity();
    memo.replaceItemValue("Form","Memo");
    if(memcopyto!=null) {
        memo.replaceItemValue("CopyTo",memcopyto);
    }
    if(memprincipal!=null) {
        memo.replaceItemValue("Principal",memprincipal);
    }
    memo.replaceItemValue("Subject",memsubject);
    memo.replaceItemValue("SendTo",memsendto);
    stream.writeText(membody);
    body.setContentFromText(stream, "text/html;charset=iso-8859-1",1729)
    memo.send();        
    }
    

    您可以将该功能放在 SSJS 脚本库中,并将其加载到 XPAGES 资源上并使用它。希望该功能可以解决您的问题。

    【讨论】:

      【解决方案3】:

      您是否尝试过使用以下代码? http://openntf.org/XSnippets.nsf/snippet.xsp?id=create-html-mails-in-ssjs-using-mime

      有类似的东西:

       session.setConvertMime(false); 
       var doc:NotesDocument = database.createDocument();
       doc.replaceItemValue("RecNoOutOfOffice", "1");    //no replies from out of office agents
       //.... 
       //send the e-mail;
       doc.send();
      
       session.setConvertMime(true);
      

      【讨论】:

        猜你喜欢
        • 2018-05-26
        • 1970-01-01
        • 2014-07-11
        • 1970-01-01
        • 2020-01-12
        • 2012-12-14
        • 2015-03-05
        • 2016-08-25
        相关资源
        最近更新 更多