public boolean execute() throws TechnischeException {
boolean ret = false;
try {
if (nachricht != null) {
session = na.connect();
Database mailbox = null;
mailbox =
session.getDatabase(
session.getServerName(),
IKonstanten.NOTES_DB_MAILBOX);
//Sicherstellen das DB geöffnet ist...
if (!mailbox.isOpen()) {
mailbox.open();
}
Document doc = mailbox.createDocument();
if (doc != null) {
RichTextItem rti =
doc.createRichTextItem(IKonstanten.NOTES_FIELD_BODY);
rti.appendText(nachricht.getBody());
Vector attachments = nachricht.getAttachments();
if ((attachments != null) && (attachments.size() > 0)) {
String attachDir =
PropertyHelper.getPropertyHelper().getProperty(
"ATTACH_DIR");
ErstelleAnhangCmd eac = new ErstelleAnhangCmd();
eac.setNachricht(nachricht);
eac.execute();
RichTextItem anhang =
doc.createRichTextItem(
IKonstanten.NOTES_FIELD_ATTACHMENT);
for (int i = 0; i < attachments.size(); i++) {
//DTOAnhang dtoa = (DTOAnhang) attachments.get(i);
logger.info(
"Anhang: " + attachDir + "/"
+ ((DTOAnhang) attachments.get(i))
.getDateiname());
anhang.embedObject(
EmbeddedObject.EMBED_ATTACHMENT,
"",
attachDir
+ "/"
+ ((DTOAnhang) attachments.get(i))
.getDateiname(),
"Anhang");
logger.debug("Angehängt");
}
}
doc.appendItemValue(
IKonstanten.NOTES_FIELD_FROM,
nachricht.getFrom());
doc.appendItemValue(
IKonstanten.NOTES_FIELD_SUBJECT,
nachricht.getSubject());
doc.appendItemValue(
IKonstanten.NOTES_FIELD_TO,
nachricht.getTo());
doc.appendItemValue(
IKonstanten.NOTES_FIELD_VSNR,
nachricht.getVsnr());
DateTime dt = session.createDateTime(new Date());
doc.appendItemValue(IKonstanten.NOTES_FIELD_DATE, dt);
doc.appendItemValue(
IKonstanten.NOTES_FIELD_RECIPIENTS,
nachricht.getTo());
//setzen des Maskennamens
doc.appendItemValue(
IKonstanten.NOTES_FIELD_FORM,
IKonstanten.NOTES_FORM_MAIL_MEMO_NAME);
if (doc.save()) {
logger.info("Dokument gespeichert!");
ret = true;
} else {
logger.info(
"Dokument konnte nicht gespeichert werden!");
ret = false;
}
}
}
} catch (NotesException nex) {
logger.error("Notes Fehler : ", nex);
TechnischeException te =
new TechnischeException(
"Fehler: "
+ (new Date()).getTime()
+ " Nachricht konnte nicht versandt werden");
logger.error("Fehler", te);
throw te;
}
return ret;
} //execute
Hi,
ja du hast Recht, mit dem Session Fassade. Diese Pattern wird auch noch verwandt. Danke auch für den Tip mit dem recycle.
Zu den anderen Fragen. In der IKonstanten steht die Mailbox des Servers.
Die Anwendung läuft auf einem Websphere Server. Ich authetifiziere mich im Moment noch über meine ID. Die wird aber später durch einen technischen Benutzer ersetzt.
Der Code vom na.connect()
public Session connect() throws NotesException {
logger.log(Level.INFO, serverName + " " + userName + " " + userPwd); //Wird im Konstruktor befüllt
if (session == null) {
session = NotesFactory.createSession(serverName, userName, userPwd);
server = session.getServerName();
}
return session;
} //connect;