使用C#发送邮件

时间:2010-06-07 12:50:12

标签: c#

我必须使用C#发送邮件。我正确地遵循每一步,但我无法使用下面的代码发送邮件。有人可以帮我解决这个问题吗?我知道这是一个老问题,我在该网站上阅读了有关它的所有相关文章。但我无法解决我的问题。所以请帮我解决这个问题。错误是:Failure sending mail。我使用System.Net.Mail来完成它。

using System.Net.Mail;

string mailTo = emailTextBox.Text;
string messageFrom = "riad@abc.com";
string mailSubject = subjectTextBox.Text;
string messageBody = messageRichTextBox.Text;
string smtpAddress = "mail.abc.com";
int smtpPort = 25;
string accountName = "riad@abc.com";
string accountPassword = "123";

MailMessage message = new MailMessage(messageFrom, mailTo);                            
message.Subject = mailSubject;
message.SubjectEncoding = System.Text.Encoding.UTF8;
message.Body = messageBody;
message.BodyEncoding = System.Text.Encoding.UTF8;              
SmtpClient objSmtp = new SmtpClient(smtpAddress, smtpPort);
objSmtp.UseDefaultCredentials = false;
NetworkCredential basicAuthenticationInfo = new System.Net.NetworkCredential(accountName, accountPassword);
objSmtp.Credentials = basicAuthenticationInfo;
objSmtp.Send(message);                                
MessageBox.Show("Mail send properly");

2 个答案:

答案 0 :(得分:2)

如果目标邮件服务器是IIS SMTP(或任何其他)服务器,那么您必须检查该服务器上的中继限制。

通常,您必须将邮件服务器配置为接受来自计算机名称(如果在Active Directory中)或IP地址的传入中继。或者,或者你可以使它成为一个公开的中继 - 但如果它是一个公共邮件服务器,那么不推荐这样做,因为你会让垃圾邮件发送者立即通过它进行中继。

您也可以将服务器配置为接受来自特定身份的中继邮件 - 如果这是网站代码,则意味着您很可能必须将该网站配置为以域用户身份运行,以便NetworkCredentials正确发送。

答案 1 :(得分:1)

噢朋友们......我得到了解决方案。

我只使用了端口26.现在邮件正在正常发送。

int smtpPort = 26;

无论如何,多亏了Zoltan

里亚德。