Мы отправляем электронные письма, используя альтернативную учетную запись в Outlook. Когда я делаю это с объектной моделью Outlook, все в порядке, но когда мы делаем это с Redemption (5.10.0.4312) и учетной записью Outlook по умолчанию (!) Является без использования режима кэширования Exchange , электронная почта фактически отправлено с использованием учетной записи по умолчанию.
Не имеет значения, использует ли другой аккаунт (other@adomain.de) режим кэширования.
private static void CreateAndSendMailItemWithRedemption()
{
Redemption.RDOSession session = Activator.CreateInstance(
Type.GetTypeFromProgID("Redemption.RDOSession")) as RDOSession;
session.Logon();
var targetFolder =
session.GetDefaultFolder(rdoDefaultFolders.olFolderDrafts) as RDOFolder2;
string recipientAddress = "some@recipient.de";
string accountNameForSending = "other@adomain.de";
var mailItem = targetFolder.Items.Add();
mailItem.To = recipientAddress;
mailItem.Subject = "Automated mail from Redemption";
var accounts = session.Accounts.Cast<RDOAccount>().ToList();
Console.WriteLine(
"Accounts in Outlook: " + string.Join(",", accounts.Select(_ => _.Name)));
var account =
accounts
.FirstOrDefault(
_ => _.Name.Equals(
accountNameForSending,
StringComparison.CurrentCultureIgnoreCase));
mailItem.Account = account ?? throw new NullReferenceException(nameof(account));
const string defaultStr = "default";
mailItem.Body = $"Sent from {mailItem.Account?.Name ?? defaultStr} account.";
mailItem.Send();
mailItem = null;
targetFolder = null;
session = null;
}
Подводный камень в том, что отправитель не видит, что что-то пошло не так; если они сохраняют электронную почту, она очень хорошо помечается альтернативной учетной записью, хотя она и выходит с использованием учетной записи по умолчанию.