在电子邮件表单Xpages中包含文档链接和图形

时间:2015-02-06 19:09:16

标签: xpages xpages-extlib

我想从Xpage应用程序发送电子邮件。想要包含某种类型的标题图形或HTML样式,它必须包含文档链接。

我开始使用Ulrich Krause修改Tony McGuckin的优秀SSJS here

但是,我有两个我无法解决的问题 - 添加文档链接和图形。

var doc:NotesDocument = currentDocument.getDocument();
var tmp:String ="A New Location Has Been Created: " + document1.getDocument().getItemValueString("businessUnitName") + ".\n\n" + "Please click this doc link and add any additional approvers ==> ";
emailBean.setSendTo("name@domain.com");
emailBean.setSubject("Lcoations");
emailBean.setSenderEmail("name@domain.com");
emailBean.setSenderName("Locations");
emailBean.setFieldName("Body");
//emailBean.setDocument(document1);
emailBean.addHTML("<table><tr><th>Month</th><th>Savings</th></tr><tr><td>January</td><td>$100</td></tr></table>") 
emailBean.addHTML(tmp);
emailBean.setBannerHTML("<table><tr><th>Month</th><th>Savings</th></tr><tr><td>January</td><td>$100</td></tr></table>");
emailBean.setFooterHTML("<p>Kind regards,<br/>Samantha<br/>0012 3456 789</p>");
emailBean.send();

我已经注释掉了setDocument代码,因为它没有用,也没有必要。

我在db中有一个名为locations.pgn的图像资源,我想要包含它 - 或者我可以将它放在我控制的网址上。

如何传递文档链接?我计算了它,但我现在还没有如何添加它。

我尝试的另一种方法是自己动手。

我在Xpage表单上的按钮中有这个:

var doc:NotesDocument = currentDocument.getDocument();
var nteUrl:String = doc.getNotesURL();
var sndTo:String ="name.domain.com";
var sndFrm:String ="ame.domain.com";
var sbj:String ="A New Location Has Been Created: blah blah blah");
var body:String =""A New Location Has Been Created: blah blah blah");

sendEmail(sndTo,sndFrm,sbj,body,doc);

然后我的功能:

function sendEmail(sndTo,sndFrm,subject,body,trgDoc) {

    var doc:NotesDocument = database.createDocument();
    doc.replaceItemValue("Form","Memo");
    doc.replaceItemValue("Subject",subject);
    doc.replaceItemValue("Principal",sndFrm);
    doc.replaceItemValue("From",sndFrm);
    doc.replaceItemValue("SendTo",sndTo);
    doc.replaceItemValue("DisplaySent",sndTo);
    doc.replaceItemValue("SMTPOriginator",sndTo);
    var memo:NotesRichTextItem = doc.createRichTextItem("Body")
    var urlgif="/locations.png";
    memo.embedObject(NotesEmbeddedObject.EMBED_OBJECT, "",urlgif,null);
    memo.appendText(body);
    memo.appendDocLink(trgDoc);
    doc.send();
  return ;
}

这会将文件作为附件附加,而不是作为图片附加。无法找到一种方法来做到这一点。

我不知道我使用哪种方法,我只是希望得到一个方法并加强,以便我可以在整个应用程序中使用它。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

您使用emailBean.addHTML(... your html ...)创建基于HTML的电子邮件。

使用语法

<a href="url">link text</a>

添加链接和

<img src="url" ...>

添加图片。

您可以在base64中对图片进行编码,并将其完全包含在您的html中,而不是像

那样
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZ
AQAAAADskrjOAAAAfElEQVR42mNgrDrAwFCbHs/A4Gp8EUgIBAKJSUCiVuY+A
wNjqAMDw//T/xsYDK9nMDB4/zAGSkimMTAIbz/DwHDitRwDg1agNQPD0YTyBoZ
L/ncbGHg3swN1WBcD9f4Lb2CoLS8AmufB3sDgehWo2LXRDSjmtRkoG5TCAACQ
1SM9QzyOtAAAAABJRU5ErkJggg==">