Как отправить электронное письмо в C #, используя учетную запись электронной почты, отличную от зарегистрированного пользователя - PullRequest
3 голосов
/ 15 февраля 2012

У меня есть рабочая форма, которая отправляет электронные письма с учетной записи по умолчанию. Я пытаюсь добавить функцию, с помощью которой пользователь может выбрать учетную запись электронной почты из раскрывающегося списка и отправить электронные письма через альтернативный адрес, например, info@companyname.com или support@companyname.com. Я пытаюсь использовать опцию «SendUsingAccount», но безуспешно. Я смотрю онлайн, но в основном нахожу примеры с использованием VB, с которыми я не знаком. Мой код выглядит следующим образом:

Microsoft.Office.Interop.Outlook.Application objOutlook = new Microsoft.Office.Interop.Outlook.Application();
var mic = (MailItem)(objOutlook.CreateItem(OlItemType.olMailItem));
Inspector oAddSig = null;

mic.sendusingaccount = ??????????????     //here is where i need the help
mic.Subject = "Announcing Participant Website Enhancements!";
mic.Importance = OlImportance.olImportanceHigh;
mic.BodyFormat = OlBodyFormat.olFormatHTML;
//mic.Attachments.Add(PDFAttachment + yearending.Text + ".pdf");
object emailBody = ToolBox.GetStringFromTextFile((string)EmailBody);
oAddSig = mic.GetInspector;
mic.HTMLBody = emailBody + mic.HTMLBody;
//mic.Display(true);
mic.Send();

Ответы [ 3 ]

3 голосов
/ 15 февраля 2012

Ну, я всегда использую SMTP-клиента из пространства имен System.Net.Mail.У него есть метод send, который позволяет вам указать адрес, с которого отправлено сообщение, от

Проверить его: http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx

До тех пор, пока вы знаете адресваш сервер обмена (который должен быть в порядке, так как вы пытаетесь использовать outlook в вашем примере), все должно быть в порядке.Вероятно, немного проще, чем подход выше.

2 голосов
/ 15 февраля 2012

если у вас есть выпадающий список, вы можете создать строку со значением этого dd и присвоить sendusingaccount = ваша строка

    Microsoft.Office.Interop.Outlook.Application objOutlook = new     Microsoft.Office.Interop.Outlook.Application(); 
    string email = yourdropdown.selectedvalue;
    var mic = (MailItem)(objOutlook.CreateItem(OlItemType.olMailItem)); 
    Inspector oAddSig = null; 
    mic.sendusingaccount = email 

Я надеюсь, что это поможет вам

1 голос
/ 15 февраля 2012
    Outlook.Account account =
    Application.Session.Accounts["Hotmail"];
mic.SendUsingAccount = account;

Может быть, вы можете проверить различные учетные записи на сессиях ...

Вы можете проверить: MSDN

...