在xpages中发送MIME邮件运行时错误时出错

时间:2014-09-21 06:09:07

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


我想从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动作表达式脚本解释器时出错   error,line = 6,col = 5:[TypeError]调用方法发生异常   NotesDocument.send()null

我将非常感谢你的帮助 感谢

3 个答案:

答案 0 :(得分:0)

您是否尝试过使用以下代码? 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);

答案 1 :(得分:0)

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

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 Script Libary上并将其加载到XPAGES资源上并使用它。希望功能可以解决您的问题。

答案 2 :(得分:0)

对于那些希望使用它的人来说,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。收件人的对象可以是列表,数组或逗号分隔的电子邮件地址字符串。 body的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")