Эта проблема возникает для одного из наших клиентов, и я не смог воспроизвести ее на своей стороне, используя ту же версию Outlook. Мой клиент и я используем Office 365 с установленным Outlook 2016. Когда он отправляет электронное письмо в нашу программу через Outlook Redemption (сторонняя программа, используемая для интеграции с Outlook), почта застревает в папке «Исходящие».Письма, отправленные с помощью Outlook Redemption Застряли в Oulook Outbox
Если он дважды щелкает сообщение (поэтому он появляется в Outlook), он может нажать кнопку отправки, и он будет успешно отправлен. Если они используют старую версию Outlook (2010), это не проблема. Я обновил их до последней версии Outlook Redmeption в то время (выпущен 07 мая 2016 года), хотя похоже, что они только что вышли с новой версией несколько дней назад. Я попробую это скоро, но в журнале изменений не упоминается, что почта застряла в Outbox.
Я также заметил, что письма в его исходной папке имеют то, что кажется им символом «черновик», в то время как в моей папке «Исходящие» у них есть символ «отправки». Это кажется важным, но я не уверен, что я могу с этим поделать.
Кроме того, поражение отправки/получения всех папок не помогает.
Мой код ниже. Спасибо за любую помощь.
public static bool SendMessage(Recipients recipients, string[] addressListReplyTo, string subject, string body, string[] attachments, bool requestReadReceipt, Log log, bool isHtmlBody = false)
{
RDOSession session = null;
RDOMail mail;
RDOFolder folder;
bool result = true;
session = GetSessionAndLogon(log);
if (session == null)
return false;
folder = session.GetDefaultFolder(rdoDefaultFolders.olFolderOutbox);
mail = folder.Items.Add();
if (isHtmlBody)
mail.HTMLBody = body;
else
mail.Body = body;
mail.Subject = subject;
mail.ReadReceiptRequested = requestReadReceipt;
foreach (string attachment in attachments)
{
if (attachment != "")
mail.Attachments.Add(attachment);
}
foreach (string address in addressListReplyTo)
{
if (address != "")
mail.ReplyRecipients.Add(address);
}
foreach (string address in recipients.To)
{
if (address != "")
mail.Recipients.Add(address).Type = 1;
}
foreach (string address in recipients.Cc)
{
if (address != "")
mail.Recipients.Add(address).Type = 2;
}
foreach (string address in recipients.Bcc)
{
if (address != "")
mail.Recipients.Add(address).Type = 3;
}
foreach (RDORecipient recipient in mail.Recipients)
{
if (!OutlookMailEngine64.existsName(recipient.Name, session, log == null ? null : log))
result = false;
}
if (result)
{
try
{
mail.Send();
result = true;
}
catch (System.Runtime.InteropServices.COMException ex)
{
string message = "Error while sending email: " + ex.Message;
if (log != null)
log.Message(message);
if (OutlookMailEngine64.DiagnosticMode)
MessageBox.Show(message);
throw new EmailLibraryException(EmailLibraryException.ErrorType.InvalidRecipient, "One or more recipients are invalid (use OutlookMailEngine64.ValidateAddresses first)", ex);
}
}
if (session.LoggedOn)
session.Logoff();
return result;
}
Благодарим за отзыв. 'Namespace.SendAndReceive' делает то же самое, что и удалять вручную и вносить все папки вручную в Outlook, правильно? Если это так, это не поможет. Мы нажали на эту кнопку, и сообщение все еще сидит в папке «Исходящие» с иконкой «черновик», а не с иконкой «отправка». Клиент также протестировал новую версию Redemption (09 января 2017 года), но это не помогло (я этого не ожидал, просто хотел обновить в любом случае). Я также был бы открыт для прямого общения с вами, если это будет работать лучше для вас. Спасибо за помощь! – bruestle2
У вас есть панель предварительного просмотра в папке «Исходящие»? Отображает ли Outlook курсивом сообщение? –
Вот скриншот от клиента с приложением «Отправить/получать», чтобы показать, что они не отправят. http://i.imgur.com/rWYQSh9.png Кроме того, оказывается, что я был некорректен относительно одной детали. Они используют Google App Sync с Office 2016, а не Office 365. – bruestle2