보내는 메시지를 수정하고 보내는 바로 전에 사용자 지정 첨부 파일을 추가하는 Outlook 추가 기능에서 작업하고 있습니다. 환불 및 교환 일반 우편 보낼 때 그것은 아주 잘 작동합니다.보너스로 수정 된 디지털 서명 된 메일 보내기
메시지가에 인증서로 디지털 서명 된 경우 이 표시됩니다. 이 경우 smime.p7s 파일이 자동으로 첨부되고 (RDOAttachment로 읽을 수 있음) 다른 사용자 지정 첨부 파일이 추가되고 메시지가 수정되어 전송됩니다. 그러나 받는 사람은 수정하지 않고 사용자 지정 첨부 파일없이 메일을받습니다..
송신 방법에서 수행되는 조작은 무엇입니까? 데이터에 서명 할 때 어떤 보호 장치가 있습니까? 데이터를 수정하고 첨부 파일을 보내는 방법에 대한 해결책이 있습니까? 아마도 이미 서명 된 데이터를 수정하는 것은 말도 안되지만, 그렇게할만한 이유가 있음을 믿어 의심치를 제기 할 것입니다.
C# 샘플 코드는 다음과 같습니다
void Application_ItemSend(object Item, ref bool Cancel)
{
Outlook.MailItem mailItem = Item as Outlook.MailItem;
if (mailItem != null)
{
mailItem.Save();
if (mailItem.EntryID != "")
{
// get RDOMail
RDOSession rdoSession = new RDOSession();
rdoSession.MAPIOBJECT = Application.Session.MAPIOBJECT;
RDOMail rdoMail = rdoSession.GetMessageFromID(mailItem.EntryID);
// get info about attachments (e.g. smime.p7s)
foreach (RDOAttachment attachment in rdoMail.Attachments)
{
System.Windows.Forms.MessageBox.Show(attachment.FileName);
}
// modify body
rdoMail.HTMLBody = "<html><body>test</body></html>";
// add some custom attachment
byte[] data = new byte[] { 0x01, 0x02, 0x03, 0x04 };
RDOAttachment att = rdoMail.Attachments.Add(data);
att.FileName = "attachment.bin";
// send modified mail
rdoMail.Save();
rdoMail.Send();
// do not send original message
Cancel = true;
mailItem.GetInspector.Close(Outlook.OlInspectorClose.olDiscard);
}
}
}