I am sending email through Domino Server by writing java mail sender program. Previously I was using notes dll but now I have switched to iiop. Since then I am not able to see the content of my sent Encrypted mail. The recepients can read the mail very well its just me. But I should be able to see my sent Encrypted mail.
When I send email via Lotus Notes client then it works. Did I forget to set anything in code or what?
Code used is below:
public boolean sendMail(boolean schedule, String subject, String body, List<String> recipients, boolean doEncryt, boolean html, List<Binary> binaries, List<String> cc, List<String> bcc, List<String> replyTo)
{
String errorTxt = "";
boolean diiop = true;
try
{
Session session = null;
// if (diiop)
try {
session = NotesFactory.createSession(NOTESMAILSERVER,"SOMEID",NOTESIDPW);
diiop = true;
}
// else
catch (Exception exc){
NotesThread.sinitThread();
session = NotesFactory.createSession();
Registration lRegistration = session.createRegistration();
lRegistration.switchToID(ResourceHelper.findResource(NOTESIDPATH).getFile().getAbsolutePath(), NOTESIDPW);
diiop = false;
}
DbDirectory dir = session.getDbDirectory(NOTESMAILSERVER);
Database lDb = dir.openMailDatabase();
session.setConvertMime(true);
session.setConvertMIME(true);
Document lDoc = lDb.createDocument();
lDoc.replaceItemValue("Form" ,"Memo");
//set receip email addresses
fillAdressItem(lDoc, recipients, "SendTo");
fillAdressItem(lDoc, cc, "CopyTo");
fillAdressItem(lDoc, bcc, "BlindCopyTo");
//set subject
lDoc.replaceItemValue("Subject" , subject);
//set sender
lDoc.replaceItemValue("From", this.FROM);
lDoc.replaceItemValue("Principal", this.FROM);
//prepare body text
prepareRichTextBody(body, html, session, lDoc);
//handle attachments
RichTextItem lAttachmentItem = lDoc.createRichTextItem("attachments");
if(binaries != null)
{
for(Binary binary : binaries)
{
File tempFile = new File(getTempFolder(),binary.getName());
IOUtils.copyLarge(binary.getDataInputStream(), new FileOutputStream(tempFile));
lAttachmentItem.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", tempFile.getPath(), tempFile.getName());
tempFile.delete();
}
}
//save if aSaveOnSend is true
lDoc.setSaveMessageOnSend(true);
//encrypt document if requested
if(doEncryt)
{
lDoc.setEncryptOnSend(true);
lDoc.encrypt();
}
//send mail
lDoc.send();
return(true);
}
catch(Throwable lE)
{
}
finally
{
if (!diiop) NotesThread.stermThread();
}
}
Kindly let me know what I am missing.
Thanks
You are calling both lDoc.setEncryptOnSend(true) and lDoc.encrypt(). The encrypt() method is normally used with setEncryptionKeys() to do secret key encryption. Email uses public key encryption.
The help for the encrypt() method states
Since mail encryption works differently, don't use this method if you want to mail an encrypted document. Instead, set the EncryptOnSend property to True, and use the Send method.
Try getting rid of the call to lDoc.encrypt(). My guess is that by calling it, you're changing something in the internal state of the document (maybe creating an empty SecretEncryptionKeys item) that is messing things up while saving your copy of the Sent message.