2011-11-02 32 views
5

Tôi là người mới sử dụng ASP và đang khắc phục sự cố một biểu mẫu cho công việc. Không ai trong chúng ta ở đây là các chuyên gia ASP khi chúng tôi sử dụng PHP. Nhưng tôi cũng đang ở dưới cùng của trải nghiệm PHP, hầu hết chỉ làm việc với HTML/CSS. Thông tin đăng nhập biểu mẫu hiện tại của tôi trông giống như:Cách sử dụng gmail SMTP dưới dạng ASP.NET

rotected Sub SubmitForm_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
     If Not Page.IsValid Then Exit Sub 

     Dim SendResultsTo As String = "email to" 
     Dim smtpMailServer As String = "email server" 
     Dim smtpUsername As String = "email username" 
     Dim smtpPassword As String = "password" 
     Dim MailSubject As String = "Form Results" 

Tôi làm cách nào để gửi biểu mẫu này tới địa chỉ Gmail? Tôi biết tôi phải bao gồm các cổng (587) một nơi nào đó, nhưng không thể tìm ra nơi, như hình thức này không phù hợp với cú pháp của bất kỳ hình thức khác tôi đã nhìn thấy. Mọi sự trợ giúp sẽ rất được trân trọng!

Trả lời

12
protected void SendMail() 
     { 
      MailMessage msg = new MailMessage(); 
      System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); 
      try 
      { 
       msg.Subject = "Add Subject"; 
       msg.Body = "Add Email Body Part"; 
       msg.From = new MailAddress("Valid Email Address"); 
       msg.To.Add("Valid Email Address"); 
       msg.IsBodyHtml = true; 
       client.Host = "smtp.gmail.com"; 
       System.Net.NetworkCredential basicauthenticationinfo = new System.Net.NetworkCredential("Valid Email Address", "Password"); 
       client.Port = int.Parse("587"); 
       client.EnableSsl = true; 
       client.UseDefaultCredentials = false; 
       client.Credentials = basicauthenticationinfo; 
       client.DeliveryMethod = SmtpDeliveryMethod.Network; 
       client.Send(msg); 
      } 
      catch (Exception ex) 
      { 
       log.Error(ex.Message); 
      } 
     } 
+2

Cảm ơn! Đã hiểu rồi! –

+0

Gmail/Google sẽ chặn không cho gửi email. Bạn có thể thay đổi cài đặt từ tài khoản gmail của người gửi để cho phép "các ứng dụng kém an toàn hơn" truy cập vào nó. – Shiljo

1

Tạo đối tượng System.Net.Mail.SmtpClient, đặt thông tin máy chủ SMTP bạn đang sử dụng.

Sau đó tạo một System.Smtl.MailMessage với thông điệp dữ liệu và gửi nó:

using (System.Net.Mail.SmtpClient mail = new System.Net.Mail.SmtpClient()) { 
    using (System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage("from*where.com", "[email protected]") { 
     IsBodyHtml = true, 
     Subject = "Subject text", 
     Body = messageBody, 
    }) { 
     mail.Send(message); 
} // using 

Bạn có thể cấu hình SmtpClient của bạn trong các nhà xây dựng, chúng tôi sử dụng web.comfig, vì vậy tôi không có mã .

+0

Tôi không có ý tưởng làm thế nào để đi về làm điều đó, hahaha. Tôi thậm chí không nên làm việc trong dự án này, nhưng tiếc là tôi là người duy nhất có thể làm được. –

+0

Web.config trong câu trả lời ở trên thiết lập đối tượng SmtpClient, vì vậy bạn có thể gửi tin nhắn bằng cách sử dụng mã của tôi không thay đổi. – drdwilcox

+0

Đây là cú pháp đầy đủ của tôi http://pastebin.com/85Ad9swq Tôi xin lỗi, nhưng tôi thậm chí không biết bắt đầu từ đâu. Tôi không có lý do khả thi để học ASP.NET ...ngoài một trường hợp này -_- –

16

Bạn có thể thêm này trong web.config tập tin của bạn

<system.net> 
    <mailSettings> 
     <smtp from="[email protected] "> 
     <network host="smtp.gmail.com" defaultCredentials="false" 
     port="587" userName ="[email protected]" password="yourpassword" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 
+0

Tôi có thể xóa toàn bộ phần khỏi mã hiện tại của mình không? 'Dim SendResultsTo As String = "email để" Dim smtpMailServer As String = "máy chủ email" Dim smtpUsername As String = "tên người dùng email" Dim smtpPassword As String = "password" Dim MailSubject As String = "Kết quả Mẫu "' –

+0

bạn sẽ không cần phải chỉ định mật khẩu tên người dùng và mạng một lần nữa trong mã, trong mã của bạn tạo ra một đối tượng SmtpClient để gửi tin nhắn –

+0

cảm ơn cho mẹo hữu ích này. công việc tốt. –

-1

no shortage of tutorials về cách gửi một email từ bên trong .NET.

Thực chất bạn muốn đối tượng System.Net.Mail.SmtpClient tương tác với máy chủ SMTP, đối tượng System.Net.Mail.MailMessage để giữ dữ liệu thư và dữ liệu cấu hình trong tệp cấu hình của bạn để hướng khách hàng về cách/nơi gửi thư.

0

Hãy thử điều này.

Dim client As New Net.Mail.SmtpClient 
client.UseDefaultCredentials = False 
client.Credentials = New System.Net.NetworkCredential("[email protected]", "password") 
client.Host = "smtp.gmail.com" 
client.Port = 587 
client.EnableSsl = True 
client.Send("[email protected]","[email protected]","subject","body") 
+0

Tôi gặp lỗi thời gian chạy. Nếu Không Page.IsValid sau đó Exit Sub Dim client As New Net.Mail.SmtpClient client.UseDefaultCredentials = False client.Credentials = Net System.Net.NetworkCredential ("[email protected]", "pajax6767 ") khách hàng.Host =" smtp.gmail.com " khách hàng.Port = 587 khách hàng.EnableSsl = True client.Send (" [email protected] "," [email protected] "," subject " , "body") Hãy thử Dim txtQ Là TextBox = Me.FormContent.FindControl ("TextBoxQ") ' –

+1

hãy xóa phần này. mật khẩu của bạn được tiết lộ! – naveen

+1

mật khẩu giả mạo –

0

Nếu bạn đang sử dụng xác minh 2 bước, đừng quên để tạo ra một mật khẩu ứng dụng cụ thể và sử dụng, không phải là mật khẩu mà bạn sử dụng để đăng nhập vào Gmail.

(Xin lỗi tôi không thể thêm đây là một nhận xét. Không đủ đại diện tại thời điểm đăng này.)

0

Google bây giờ che phủ lần đăng nhập từ một ứng dụng (thậm chí qua SSL) để gửi một email. Bạn có hai tùy chọn:

  1. Bật ứng dụng kém an toàn cho tài khoản bạn đang sử dụng; HOẶC
  2. Tạo một ứng dụng-mật khẩu từ Google (đề nghị)

Đối với phương án 2, bạn sẽ phải kích hoạt xác thực 2 yếu tố trước khi bạn có thể tạo một pasword ứng dụng. Dưới đây là các bước tôi đã để làm việc này trên ASP.NET ứng dụng web của tôi

How to configure an ASP.NET web app with Gmail SMTP

Các vấn đề liên quan