簡體   English   中英

使用C#發送郵件

[英]Sending mail using 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");

如果目標郵件服務器是IIS SMTP(或其他任何服務器),則必須檢查該服務器上的中繼限制。

通常,您必須配置郵件服務器以接受來自計算機名稱(如果在Active Directory中)或IP地址的傳入中繼。 要么這樣做,要么可以將其設置為開放中繼-但是,如果它是公共郵件服務器,則不建議這樣做,因為垃圾郵件發送者會立即通過它進行中繼。

您也許還可以將服務器配置為接受來自特定身份的中繼消息-如果這是網站代碼,則意味着您很可能必須將站點配置為以域用戶身份運行,以便發送NetworkCredentials正確結束。

哦,朋友...我找到了解決方案。

只是我使用了端口26.now郵件正在正確發送。

int smtpPort = 26;

無論如何要感謝佐丹

里亞德

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM