-1

我正在尝试使用我写的 ac# 程序向 Microsoft 管理的目标公司地址发送一封电子邮件;默认情况下,它使用我的公司地址发送它,但我不希望我的地址显示为当时的发件人,我尝试使用“代表”选项,但仍然将两个地址都显示为发件人。有没有一种方法可以更改发件人而无需在我的计算机中配置特定的发件人帐户。我认为这可能是不可能的,因为 SMTP 会因为它被欺骗而阻止电子邮件,但我希望有办法解决它。如果这是不可能的,有没有办法将该电子邮件凭据和 SMTP 服务器信息输入到 C# 代码中,这样我就不必在将发送电子邮件的机器上实际设置 Outlook?在此先感谢您的帮助。

4

2 回答 2

-1

您可以为此使用 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 一起使用,并且从未遇到任何问题。

于 2016-06-17T20:52:34.233 回答
-1
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

于 2016-06-17T21:03:15.540 回答