Отправить письмо с общего адреса электронной почты без SMTP-сервера - PullRequest
0 голосов
/ 05 ноября 2019

Я хочу отправить электронное письмо, используя заданное имя общего почтового ящика программно. У меня нет доступа к серверу SMTP, поэтому я не могу использовать System.Net.Mail.

Я использую Outlook = Microsoft.Office.Interop.Outlook;

Как можно отправить письмо из общего почтового ящика вместо адреса электронной почты по умолчанию?

outlook.MailItem mail application.CreateItem(outlook.OlItemType.olMailItem) as outlook.MailItem;
try
   {          

    if (mail.Subject.Contains("Highway Alert")
    {

        mail.SendUsingAccount = "sharedmailboxemail@email.com"
        mail.Send();
        System.Diagnostics.Debug.WriteLine("Email Sent ");
    }
    else

1 Ответ

0 голосов
/ 05 ноября 2019

Свойство MailItem.SendUsingAccount возвращает или задает объект Учетная запись , представляющий учетную запись, под которой отправляется MailItem. Например:

private void SendUsingAccountExample()
{
    Outlook.MailItem mail = Application.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
    mail.Subject = "Our itinerary";
    mail.Attachments.Add(@"c:\travel\itinerary.doc", Outlook.OlAttachmentType.olByValue,
        Type.Missing, Type.Missing);
    Outlook.Account account = Application.Session.Accounts["Hotmail"];
    mail.SendUsingAccount = account;
    mail.Send();
}

См. Отправить сообщение с помощью учетной записи Hotmail для получения дополнительной информации.

Помните, что в этом случае в Outlook должна быть настроена другая учетная запись.

Свойство SentOnBehalfOfName имеет смысл только в случае профилей / учетных записей Exchange. Более того, вам необходимо иметь необходимые разрешения для отправки от имени другого лица. См. Проблема с SentOnBehalfOfName для аналогичного обсуждения.

В случае, если в профиле настроено несколько учетных записей, вы можете использовать свойство SendUsingAccount , которое позволяет объекту Account, представляющему учетную запись, под которой должен быть отправлен MailItem.

 Sub SendUsingAccount() 
  Dim oAccount As Outlook.account 
  For Each oAccount In Application.Session.Accounts 
   If oAccount.AccountType = olPop3 Then 
    Dim oMail As Outlook.MailItem 
    Set oMail = Application.CreateItem(olMailItem) 
    oMail.Subject = "Sent using POP3 Account" 
    oMail.Recipients.Add ("someone@example.com") 
    oMail.Recipients.ResolveAll 
    oMail.SendUsingAccount = oAccount 
    oMail.Send 
   End If 
  Next 
 End Sub 
...