Настроить учетную запись отправителя для моего Microsoft.Office.Interop.Outlook._MailItem из моего проекта WPF - PullRequest
0 голосов
/ 19 июня 2020

У меня есть проект WPF C #, в котором у меня есть функция для отправки электронных писем с помощью Microsoft.Office.Interop.Outlook._MailItem, но я не знаю, как настроить учетную запись отправителя , это учетная запись gmail , и я не знаю, как это сказать или как дать ему имя пользователя и пароль от него, может ли кто-нибудь помочь мне?

public void sendEMailThroughOUTLOOK(string PDFAdjunto, string XMLAdjunto, string from, string[] to, string subject, string body, string cc)
{
    try
    {            
        Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
        // Create a new mail item.
        Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

        // add to's
        if (to[0] != string.Empty && to[0] != null)
        {
            oMsg.Recipients.Add(to[0]);
        }
        if (to[1] != string.Empty && to[1] != null)
        {
            oMsg.Recipients.Add(to[1]);
        }

        // Mail body
        oMsg.Body = body;
        oMsg.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatPlain;

        // Mail attachments
        Microsoft.Office.Interop.Outlook.Attachment oAttach1 = oMsg.Attachments.Add(XMLAdjunto);
        Microsoft.Office.Interop.Outlook.Attachment oAttach2 = oMsg.Attachments.Add(PDFAdjunto);

        // Mail subject
        oMsg.Subject = subject;

        // Resolve accounts
        oMsg.Recipients.ResolveAll();

        // Send mail
        ((Microsoft.Office.Interop.Outlook._MailItem)oMsg).Send();

        // Clean up.
        oMsg = null;
        oApp = null;
    }
    catch (System.Exception e) 
    {
        Mensaje = new wMensaje("Error en envío de Mail", DateTime.Now.ToString()
            + System.Environment.NewLine + subject
            + System.Environment.NewLine + " De: '" + from + "' "
            + System.Environment.NewLine + " Para: '" + to[0] + "', '" + to[1] + "' '"
            + (e.Message.Contains("Operación anulada") ? System.Environment.NewLine + System.Environment.NewLine + "-->  Asegúrese de tener ABIERTO su Outlook  <--" : "")
            + System.Environment.NewLine + System.Environment.NewLine + " Error: "
        + System.Environment.NewLine + System.Environment.NewLine
        + (e.InnerException == null ? e.Message : e.InnerException.ToString()));
        Mensaje.ShowDialog();
    }
}

1 Ответ

1 голос
/ 19 июня 2020

Я не знаю, как настроить учетную запись отправителя, это учетная запись gmail, и я не знаю, как ее сказать или как дать ей имя пользователя и пароль от нее

Вы можете использовать свойство MailItem.SendUsingAccount , которое возвращает или устанавливает объект Account, представляющий учетную запись, под которой должен быть отправлен MailItem. Свойство SendUsingAccount можно использовать для указания учетной записи, которая должна использоваться для отправки MailItem при вызове метода Send. Это свойство возвращает Null (Nothing в Visual Basi c), если учетная запись, указанная для MailItem, больше не существует.

Обратите внимание, чтобы можно было настроить свойство SendUsingAccount, должен быть настроен в профиле Outlook.


Вы также можете рассмотреть возможность использования пространства имен System.Net.Mail, подробнее об этом читайте в статье Отправлять электронную почту с помощью системы. Net. Почта через gmail .

...