从我的 WPF 项目中为我的 Microsoft.Office.Interop.Outlook._MailItem 设置发件人帐户

Set up sender account to my Microsoft.Office.Interop.Outlook._MailItem from my WPF Project

我有一个 WPF C# 项目,其中我有发送电子邮件的功能,Microsoft.Office.Interop.Outlook._MailItem 但我不知道如何配置 发件人帐户,它是一个 gmail 帐户,我不知道如何告诉它或如何给它 username and password 其中,有人可以指导我吗?

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();
    }
}

I don't know how to configure the sender account, it is a gmail account, and I don't know how to tell it or how to give it the username and password of it

您可以使用 MailItem.SendUsingAccount 属性 其中 returns 或设置一个 Account 对象代表要发送 MailItem 的帐户. SendUsingAccount 属性 可用于指定在调用 Send 方法时应用于发送 MailItem 的帐户。此 属性 returns Null(在 Visual Basic 中为 Nothing)如果为 MailItem 指定的帐户不再存在。

请注意,要能够设置 SendUsingAccount 属性,必须在 Outlook 配置文件中进行配置。


您也可以考虑使用 System.Net.Mail 命名空间,在 Send email using System.Net.Mail through gmail 文章中阅读更多相关信息。