Изменение исходного адреса электронной почты из программы на C# с помощью Microsoft.Office.Interop.Outlook

Я пытаюсь отправить электронное письмо с помощью программы aC#, которую я написал, на адрес компании назначения, управляемый Microsoft; по умолчанию он использует адрес моей компании для отправки, но я не хочу, чтобы мой адрес отображался в качестве отправителя, я попытался использовать опцию "От имени", но все равно в качестве отправителя отображаются оба адреса. Есть ли способ изменить отправителя без необходимости настройки этой конкретной учетной записи отправителя на моем компьютере. Я думаю, что это может быть невозможно, потому что SMTP заблокирует электронную почту из-за ее подделки, но я надеюсь, что есть способ обойти это. В случае, если это невозможно, есть ли способ ввести эти учетные данные электронной почты и информацию о SMTP-сервере в код C#, чтобы мне не пришлось настраивать Outlook на компьютере, который будет отправлять электронные письма? Заранее спасибо за помощь.

2 ответа

Решение
void SendEmail(string SMTPServer, int SMTPPort, string SMTPUserName, string SMTPPassowrd, 
              string FromEmailID, string ToEmailID, string Subject, string Body)
    {
        try
        {
            SmtpClient SmtpClient = new SmtpClient(SMTPServer, SMTPPort);
            SmtpClient.UseDefaultCredentials = false;
            SmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            SmtpClient.Credentials = new System.Net.NetworkCredential(SMTPUserName, SMTPPassowrd);
            MailMessage mailMsg = new MailMessage();
            mailMsg.From = new MailAddress(FromEmailID);
            mailMsg.To.Add(ToEmailID);
            mailMsg.Subject = Subject;
            mailMsg.Body = Body;
            mailMsg.IsBodyHtml = true;
            SmtpClient.Send(mailMsg);
        }
        catch
        {

            throw;
        }
    }

http://www.dotnetlearners.com/blogs/view/80/SMTP-send-email-source-code.aspx

Для этого вы можете использовать пространство имен System.Net.Mail. Вы можете отправить с любого адреса, который вы хотите.

using System.Net;
using System.Net.Mail;

using (SmtpClient client = new SmtpClient("yourserver"))
{
    client.Credential = new NetworkCredential();

    MailMessage message = new MailMessage();
    message.To.Add("targetAddress");
    message.From = new MailAddress("from addresss");
    message.Subject = "blah blah";
    message.Body = "body text.  this can be html if you want";
    message.IsBodyHtml = true; //set this to true if the body is html

    client.Send(message);
}

Я использовал это с Microsoft Exchange и Gmail и никогда не было никаких проблем.

Другие вопросы по тегам