我正在尝试使用我写给微软管理的目的地公司地址的c#程序发送电子邮件;默认情况下,它使用我的公司地址发送,但我不希望我的地址显示为发件人,我已尝试使用"代表"选项,但仍然显示两个地址作为发件人。有没有办法更改发件人,而无需在我的计算机中配置特定的发件人帐户。我认为这可能是不可能的,因为SMTP会因为它被欺骗而阻止电子邮件,但我希望有一种解决方法。如果不可能有一种方法将电子邮件凭据和SMTP服务器信息输入C#代码,那么我不必在将要发送电子邮件的机器上实际设置Outlook邮件?在此先感谢您的帮助。
答案 0 :(得分:-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一起使用,从未遇到任何麻烦。
答案 1 :(得分:-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