2012-06-13 35 views
11

Mã của tôi để gửi email qua smtp của Gmail:Không thể sử dụng Gmail smtp từ Azure của Cloud Service

SmtpClient client = new SmtpClient("smtp.gmail.com", 587); 
client.EnableSsl = true; 
client.UseDefaultCredentials = false; 
client.Credentials = new NetworkCredential("my_user_name", "my_password"); 

MailMessage message = 
    new MailMessage(new MailAddress("[email protected]"), new MailAddress("[email protected]")); 
message.Body = "body"; 
message.Subject = "subject"; 
client.Send(message); 

Mã này hoạt động trên máy tính địa phương của tôi và khi tôi xuất bản tại Azure là "trang web".

NHƯNG khi tôi xuất bản trong một "dịch vụ đám mây" tôi nhận được ngoại lệ này:

System.Net.Mail.SmtpException: The SMTP server requires a secure connection 
or the client was not authenticated. The server response was: 
5.5.1 Authentication Required. Learn more at 

Có điều gì đó khác biệt một Windows Azure "trang web" từ một "Cloud Service" mà có thể có điều này hiệu ứng?

Cảm ơn!

Trả lời

8

thiết lập Sử dụng SMTP sau trong Web.config:

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network"> 
      <network defaultCredentials="false" enableSsl="true" host="smtp.gmail.com" port="587" userName="[email protected]" password="xxxxxxxxxxx"/> 
     </smtp> 
    </mailSettings> 
</system.net> 

Tôi nghĩ bạn đang truyền thông tin đăng nhập sai. Sử dụng @ gmail.com hậu tố trong tên người dùng của bạn và cố gắng để thiết lập thuộc tính bodyhtml đúng cũng ...

Hy vọng điều này sẽ làm việc cho bạn .. Nó luôn luôn làm việc một cách chính xác với tôi .. bình luận

Kiểm tra câu trả lời của trong this SO thread.

+0

Bingo! Kết hợp tên người dùng với @ gmail.com đã thực hiện mẹo trên ứng dụng "Dịch vụ đám mây". – Cotten

+0

thực sự gmail lấy id email hoàn chỉnh là tên người dùng hoặc bạn cấu hình nó trong triển vọng hoặc bất kỳ khách hàng nào. –

+0

có thể, nhưng nó hoạt động mà không có @ gmail.com trong cassini và Azure dưới dạng "Trang Web". Có lẽ tôi đã may mắn ở đó :) – Cotten

4

Dường như kết nối của bạn bị máy chủ SMTP từ chối vì máy chủ SMTP không được bật hoặc thông tin đăng nhập không chính xác. Bạn sẽ cần phải thiết lập SSL và mạng thông tin trong web.config của bạn như sau:

<system.net> 
<mailSettings> 
    <smtp deliveryMethod="Network"> 
     <network enableSsl="true" host="smtp.gmail.com" port="25" userName="[email protected]" password="xxxxxxxxxxx"/> 
    </smtp> 
</mailSettings> 
</system.net> 

Thông tin thêm có sẵn trong cuộc thảo luận này SO: C# - Can't send mail in WIndows Azure via Gmail SMTP

0

Như đã nói trước khi tên người dùng của bạn nên chứa "@ googlemail.com". Trong mã của tôi (java) Tôi đang sử dụng cổng 465 để gửi thư qua thư google.

12

Tôi đã gặp sự cố chính xác này. Tuy nhiên, tôi đã gặp phải sự cố bất kể thực tế là tôi đang sử dụng cài đặt cấu hình <system.net> và tôi đã sử dụng thông tin đăng nhập, máy chủ, cổng, v.v.

Vấn đề là Google đã từ chối yêu cầu xác thực đến từ Azure. Tôi tìm thấy điều này bằng cách đăng nhập vào tài khoản Gmail mà tôi đang sử dụng cho SMTP Client trong mã của tôi. Sau khi đăng nhập vào tài khoản Gmail, tôi nhận thấy một cảnh báo màu đỏ-thanh-tiêu đề cho biết

Ai đó đã đăng nhập từ một vị trí không điển hình cho tài khoản của bạn. Nếu không phải bạn, hãy đổi mật khẩu của bạn ngay lập tức.

ngoài việc cảnh báo, tôi nhận được một email nói rằng:

Ai đó vừa cố sử dụng một ứng dụng để đăng nhập vào tài khoản Google của bạn , [email protected] Chúng tôi đã chặn nỗ lực đăng nhập trong trường hợp đây là kẻ xâm nhập đang cố gắng truy cập vào tài khoản của bạn.Vui lòng xem lại chi tiết về hoạt động đăng nhập:

  • Thứ hai 27 Tháng Tám, 2012 22:33:59 GMT
  • Địa chỉ IP: 168.62.48.183
  • Location: United States

Nếu bạn không nhận ra nỗ lực đăng nhập này, một người khác có thể là cố truy cập tài khoản của bạn. Bạn nên đăng nhập vào tài khoản của mình và đặt lại mật khẩu ngay lập tức. Tìm hiểu làm thế nào tại http://support.google.com/accounts?p=reset_pw

Nếu đây là bạn, và bạn muốn cho truy cập ứng dụng này vào tài khoản hãy hoàn tất các bước gỡ rối được liệt kê ở http://support.google.com/mail?p=client_login

Trân trọng, Nhóm Tài khoản Google

Sau khi tôi làm theo các bước được liệt kê trong liên kết được cung cấp, Trang web Azure của tôi có thể đăng nhập thành công vào tài khoản Gmail của tôi và sử dụng Gmail làm Ứng dụng khách SMTP.

+0

FYI - Bạn cần phải đăng nhập vào tài khoản gmail đang được sử dụng từ mã của bạn. Tôi đã nhận được email 'hoạt động đáng ngờ' đối với tài khoản được liên kết và không thể ủy quyền địa chỉ IP. – Jason

+0

Chú thích của bạn! Tôi phải đăng nhập lại bằng tài khoản gmail của mình, gắn cờ các đăng nhập đáng ngờ là hợp pháp và truy cập http://www.google.com/accounts/DisplayUnlockCaptcha. Điều đó đã sắp xếp nó ra. – Henners

+0

bạn là người bảo vệ cuộc sống THANK YOU! Tôi đã kéo tóc của tôi ra trên này một vài giờ ngay bây giờ. eeesh! –

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