如何在项目文件夹中创建文本文件,我需要将此文件作为电子邮件附件发送。然后我需要删除该文件。
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);
该代码被执行后,我收到一封邮件,但没有附件。请帮助我找出这段代码出了什么问题。
答案 0 :(得分:0)
您的问题有2个潜在答案:
a)对于“项目文件夹”,您是指本地计算机上的一个文件夹(运行浏览器的文件夹):为了安全起见,没有Web服务器可以指定下载位置。这是浏览器设置。为了安全起见。损坏用户的工作站太容易了。 唯一的方法是控制浏览器-这可能对集成用户有效,但对用户群无效。
b)“项目文件夹”是服务器(运行Domino的计算机)上的位置。在那里,您实例化FileOutputStream(一个Java对象)并执行相同的操作。 SSJS可以使用Java类。
如果您分享需要这样做的原因,则可以提出更好的解决方案。
答案 1 :(得分:0)
您需要一种完全不同的方法: -检查Notes中的Mime类 -创建多部分的mime文档 -将您的文本数据写入标记为附件的MIME部分
无需创建文件。另请参阅以下答案: When generating HTML email using MIME, can attachments be displayed in the Lotus Notes email body?
如果您坚持要创建物理文件:由于服务器端附加功能无法访问您的本地文件系统,因此您需要将其存储在服务器FileOutputStream
样式中