Я не могу знать, отправил ли пользователь письмо или прервал процесс.
Я работаю над WPF-проектом, который шифрует файлы в aes-256 и открывает всплывающее окно Outlook, где выМожно отправить зашифрованный файл.Для расшифровки файла необходим код, который отправляется с помощью SMS человеку, но если письмо не было отправлено, SMS также отправлять не нужно.Проблема в том, что я не могу найти способ определить это.
try
{
SendMail(zipfile + ".aes");
if (mapi.sent == true)
SendNewSms(); //do not send the SMS if the email has not been sent
else if (mapi.sent == false)
MessageBox.Show("It didn't work!!");
}
catch
{
MessageBox.Show("Error: MAIL");
}
public void SendMail(string attachment)
{
string subject = "";
string body = "";
string attachmentPath = attachment;
mapi.AddAttachment(attachmentPath);
mapi.SendMailPopup(subject, body);
}
Класс MAPI имеет этот код, который должен отправлять почту.Переменная «sent» - это логическое значение, которое я добавил сам
[DllImport("MAPI32.DLL")]
static extern int MAPISendMail(IntPtr sess, IntPtr hwnd, MapiMessage message, int flg, int rsv);
int SendMail(string strSubject, string strBody, int how)
{
MapiMessage msg = new MapiMessage();
msg.subject = strSubject;
msg.noteText = strBody;
msg.recips = GetRecipients(out msg.recipCount);
msg.files = GetAttachments(out msg.fileCount);
m_lastError = MAPISendMail(new IntPtr(0), new IntPtr(0), msg, how,
0);
if (m_lastError > 1)
MessageBox.Show("MAPISendMail failed! " + GetLastError(), "MAPISendMail");
Cleanup(ref msg);
return m_lastError;
}
Я ожидал, что логическое значение будет установлено в значение true, если письмо было отправлено, иначе оно останется ложным.
Надеюсь написано понятно!