2012-12-24 45 views
6

Tôi đang cố gắng gửi email khi người dùng nhấp vào gửi trong trang liên hệ với chúng tôi nhưng vì lý do nào đó không hoạt động, tôi đang làm gì sai? (PS email & mật khẩu đã được omited từ đoạn mã này, nhưng bao gồm trong dung dịch thực tếASP.NET Gửi Email

Cảm ơn

Mã trong web.config:.

<system.net> 
<mailSettings> 
    <smtp from="[email protected]"> 
    <network host="smtp.gmail.com" 
      userName="" //my email 
      password="" //password deleted for privacy reasons 
      defaultCredentials="false" 
      port="456" 
      enableSsl="true" /> 
    </smtp> 
</mailSettings> 

mã trong hình thức liên lạc asp.net :

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     MailMessage mail = new MailMessage(); 
     mail.To.Add(new MailAddress("[email protected]")); 
     mail.Subject = "Test"; 
     mail.Body = "Message was sent from" + txtName.text + txtComment.text; 
     SmtpClient smtp = new SmtpClient(); 
     smtp.SendAsync(mail, null); 
    } 
+0

bạn có ý nghĩa gì khi không hoạt động? – Ravi

+1

Thay đổi 'SendAsync()' thành 'Send()' và xem xét ngoại lệ. – SLaks

+0

trang có vẻ đang tải trong một thời gian nhưng email không bao giờ được nhận. Ngoài ra, tôi đã thử đặt Async = "true" vẫn không hoạt động – rikket

Trả lời

3

Gmail sử dụng cổng 465, không phải 456 cho SSL SMTP. Từ here:

Outgoing mail (SMTP) Server - đòi hỏi TLS1 hoặc SSL: smtp.gmail.com

Sử dụng Xác thực: Có

Cảng cho TLS/STARTTLS: 587

Cảng cho SSL: 465

+0

Đã thay đổi nhưng vẫn không hoạt động – rikket

+0

Bạn có gặp ngoại lệ như Slaks được đề xuất không? Ngoài ra, bạn có sở hữu 'test @ gmail.com' hoặc bạn đã thay đổi điều đó cho bài đăng này không? (vì đó là nơi thư của bạn đang được gửi) – keyboardP

+0

[email protected] được thay đổi thành email và có nhưng không ngoại lệ nào được ném – rikket

1

Lý do khác "khác":

  • Mã của bạn "hoạt động" khi phát triển cục bộ, nhưng ngừng hoạt động khi bạn "xuất bản"/ftp/copy, vv tệp của bạn lên máy chủ lưu trữ web?

  • NếuYes: kiểm tra cài đặt của máy chủ trust cho ASP.Net. Nếu đó là medium trust (có thể trong lưu trữ được chia sẻ), thì lưu ý rằng bạn không thể sử dụng bất kỳ cổng nào khác so với cổng 25 cho SMTP trong tin cậy trung bình.

Nó hoạt động cục bộ (dev) vì trong môi trường dev/VS cục bộ, ASP.Net chạy trong full trust.

REF (MSDN Blogs): SMTP Problems when ASP.Net is not running in full-trust

+0

vẫn không hoạt động với cổng smtp 25. – rikket

+0

System.Net.Mail.SmtpException: Không gửi được thư. ---> System.Net.WebException: Không thể kết nối với máy chủ từ xa ---> System.Net.Sockets.SocketException: Một nỗ lực kết nối không thành công vì bên được kết nối không trả lời đúng sau một khoảng thời gian hoặc kết nối được thiết lập không thành công vì máy chủ được kết nối không trả lời được – rikket

+0

@rikket không nói bạn nên sử dụng cổng 25 - Google Mail không hoạt động trên cổng 25. Tôi cho rằng * nếu * (và chỉ nếu) 'tin cậy trung bình' được đặt , bạn * không thể * sử dụng bất kỳ cổng nào khác so với cổng 25 (và do đó sẽ không hoạt động với Google Mail). – EdSF