在 Lotus Notes 中更改 "from" 字段

Change "from" field in LotusNotes

我正在使用 LotusNotes API 发送电子邮件,我需要做的是更改 "from" 字段值,请找到下面的代码:

public void sendEmail(String recipient, String subject, String bodyText,String from) throws NotesException {

    Session dominoSession = NotesFactory.createSession(dominoServer, dominoUsername, dominoPassword);
    Database dominoDb = dominoSession.getDatabase(dominoServer, dominoMailbox);

    Document memo = dominoDb.createDocument();
    memo.appendItemValue("Form", "Memo");
    memo.appendItemValue("Importance", "1");
    memo.appendItemValue("Subject", subject);
    memo.appendItemValue("Body", bodyText);
    memo.send(false, recipient);

    dominoDb.recycle();
    dominoSession.recycle();
}

你无法改变它。服务器总是将当前用户名放入 'From' 字段。您可以在 'Principal' 中设置不同的发件人,但邮件仍会显示实际发件人。 但有一个解决方法:不发送邮件,而是将邮件文档直接放入服务器上的 mail.box。然后就可以使用自己选择的'From'字段内容了。

我编辑了 Michele 的回答以澄清一些事情。如果你是初学者,我不建议你使用(未记录的)mail.box 方法......你需要知道你在那里做什么。

前段时间我用Lotusscript创建了一个邮件通知class,喜欢的可以看看。或许对你有帮助。

http://blog.texasswede.com/lotusscript-mail-notification-class/

但是,如果您不知道自己在做什么,请非常小心...:-)

我就是这样解决的,设置 "from" 属性:

public void sendEmail(final String recipient, final String subject, final String bodyText, final String from) throws NotesException {

    final Session dominoSession = NotesFactory.createSession(dominoServer, dominoUsername, dominoPassword);
    final Database dominoDb = dominoSession.getDatabase(dominoServer, dominoMailbox);

    final Document mail = dominoDb.createDocument();
    mail.appendItemValue("Form", "Memo");
    mail.appendItemValue("Importance", "1");
    mail.appendItemValue("Subject", subject);
    mail.appendItemValue("Body", bodyText);
    mail.replaceItemValue("From", from + "@NotesDomain");
    mail.replaceItemValue("InetFrom", from);
    mail.send(false, recipient);

    dominoDb.recycle();
    dominoSession.recycle();
}