0

如何在项目文件夹中创建文本文件,我需要将此文件作为电子邮件附件发送。然后我需要删除这个文件。

var textBuffer="BEGIN:VCALENDAR\r\nVERSION:2.0\r\n...END:VEVENT\r\nEND:VCALENDAR";

file = new java.io.File("c:\\Notes\\sample.ics");

//Create the file
if (file.createNewFile()){

print("File is created!");

}
else{

print("File already exists.");

}

//Write Content
writer = new java.io.FileOutputStream(file);

writer.write(textBuffer.getBytes());

writer.close();

var db:Database  = session.getDatabase("server name", "database name", false);

var doc:NotesDocument = database.createDocument();

doc.appendItemValue("Form", "Memo");

var nMime:NotesMIMEEntity = doc.createMIMEEntity();

var mimeHeader:NotesMIMEHeader;

mimeHeader = nMime.createHeader("To");

mimeHeader.setHeaderVal("email id");

mimeHeader = nMime.createHeader("Subject");

mimeHeader.addValText("Test Email", "UTF-8"); 

var stream:NotesStream = session.createStream();

var pathname:string = "c:\\Notes\\sample.ics";

if (stream.open(pathname, "binary")) {

    nMime.getContentAsBytes(stream);

    stream.close();

    }

nMime.setContentFromBytes(stream, "text/plain; charset=\"UTF-8\"",NotesMIMEEntity.ENC_NONE);

doc.send();

session.setConvertMIME(true);

执行此代码后,我收到一封邮件,但没有附件。请帮我找出这段代码出了什么问题。

4

2 回答 2

0

您需要一种完全不同的方法: - 检查 Notes 中的 Mime 类 - 创建多部分 mime 文档 - 将文本数据写入标记为附件的 mime 部分

无需创建文件。另请参阅此答案: 使用 MIME 生成 HTML 电子邮件时,附件可以显示在 Lotus Notes 电子邮件正文中吗?

如果您坚持创建物理文件:您需要将其存储为服务器FileOutputStream样式,因为服务器端附加功能无法访问您的本地文件系统

于 2018-08-13T11:10:26.730 回答
0

您的问题有 2 个可能的答案:

a) “项目文件夹”指的是本地机器上的一个文件夹(运行浏览器的那个):为了安全起见,没有网络服务器可以指定下载位置。这是浏览器设置。那是为了安全。损坏用户的工作站太容易了。唯一的方法是当您控制浏览器时——这可能适用于集成用户,但不适用于用户群。

b) “项目文件夹”是服务器(运行 Domino 的机器)上的一个位置。在那里你实例化一个 FileOutputStream(一个 Java 对象)并做同样的事情。SSJS 可以使用 Java 类。

如果你分享你为什么需要这个,可以提出一个更好的解决方案。

于 2018-08-11T10:35:52.620 回答