2013-07-28 62 views
3

我想在asp.net中使用SMTP發送電子郵件。以下代碼無法使用。使用SMTP不使用asp.net的電子郵件發送

public string send_email(string name, string email, string message) 
{ 
    var fromAddress = email; 
    var toAddress = "[email protected]"; 
    string subject = "Feedback"; 
    string body = "From: " + name+ "\n"; 
    body += "Email: " + email + "\n"; 
    body += "Subject: " + subject + "\n"; 
    body += "Question: \n" + message + "\n"; 
    // smtp settings 
    var smtp = new System.Net.Mail.SmtpClient(); 
    { 
     smtp.Host = "smtp.live.com"; 
     smtp.Port = 587; 
    } 
    smtp.Send(fromAddress, toAddress, subject, body); 


    return "Your query has been submitted."; 
} 

這不按預期工作。我正嘗試從反饋表單發送電子郵件。

+0

它的工作後,我加入 '{smtp.Host = 「smtp.live.com」; smtp.Port = 587; smtp.EnableSsl = TRUE; smtp.DeliveryMethod = S ystem.Net.Mail.SmtpDeliveryMethod.Network; smtp.Credentials = new System.Net.NetworkCredential(「myemail」,「mypassword」); smtp.Timeout = 20000;}' 沒有其他的過程來推送電子郵件,而無需從發送電子郵件和密碼? – user79307

+0

你想讓任何人從你的賬戶發送電子郵件嗎?如果沒有,則需要課程證書。 – Ehsan

+0

你可以做什麼,在服務器上設置SMTP,並通過本地主機發送。谷歌iis smtp。完成之後,您需要爲電子郵件域設置SFR記錄並添加服務器,以便發送的電子郵件不會被放入垃圾郵件。這樣你可以發送沒有用戶名和密碼。 SMTP服務器可以設置爲只接受本地電子郵件。 – SmithMart

回答

0

把它放在一個答案中,這樣更容易閱讀。

在回答您的意見,這裏是我通過沒有憑據的服務器發送的郵件。

您可以將任何地址的電子郵件發送給任何人。

但是,請記住,電子郵件到達的地方不能保證。郵件過濾器通常會拒絕來自尚未添加到該域的SPF記錄的smtp服務器的電子郵件。

MailMessage m = new MailMessage(); 

m.From = new MailAddress("[email protected]"); 
m.To.Add(new MailAddress("[email protected])); 
m.Subject = "Message from Smith"; 
m.Body = "Hello, Test Message"; 
SendEmail(m); 

var smtp = new SmtpClient 
{ 
Host = "localhost", 
Port = 25, 
UseDefaultCredentials = false,      
}; 

smtp.Send(m); 

這是通過本地計算機發送假設你已經設置SMTP服務器。

發送電子郵件有很多變量和選項,每個都有自己的限制。

選項

  1. 安裝和運行自己的SMTP服務器
  2. 使用第三方發送電子郵件,如Campain Monitor - 還有其他的供應商
  3. 如果從您的公司域只發送和他們有Exchange電子郵件,使用該服務器
+0

,拋出一個長期特殊的錯誤!像'System.Net.Mail.SmtpException:發送郵件失敗。 ---> System.Net.WebException:無法連接到遠程服務器---> System.Net.Sockets。SocketException:由於目標機器主動拒絕它而無法建立連接127.0.0.1:25 ............' – user79307

+0

這個錯誤是因爲localhost沒有運行smtp服務器,或者它正在運行一個,但它被防火牆阻止。確保你有一臺smtp服務器運行在同一臺機器上 – SmithMart

+0

'MailMessage'和'SmtpClient'實例都應該在'using'塊中。 –