2013-05-15 3 views
0

Мой код добавляет пользователя в мою базу данных. Я пытаюсь, чтобы мой сайт отправил электронное письмо с кодом доступа, чтобы проверить, что учетная запись электронной почты является законной.Почему мой веб-сайт VB.NET не отправляет электронное письмо?

Сначала я пытаюсь получить его, чтобы отправить основное тестовое письмо. Затем я планирую добавить код доступа в ссылку на мой сайт, проверяя его.

Моя проблема заключается в том, что мой код не отправляет основное тестовое письмо.

Imports System.Data.SqlClient 
Imports System.Net.Mail 

Partial Class Account_Register 
Inherits System.Web.UI.Page 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles  Me.Load 
    RegisterUser.ContinueDestinationPageUrl = Request.QueryString("ReturnUrl") 
End Sub 



Protected Sub RegisterUser_CreatedUser(ByVal sender As Object, ByVal e As EventArgs) Handles RegisterUser.CreatedUser 
    FormsAuthentication.SetAuthCookie(RegisterUser.UserName, False) 

    Dim MyMailMessage As New MailMessage() 
    ' MyMailMessage.IsBodyHtml = True 
    MyMailMessage.From = New MailAddress("[email protected]") 
    MyMailMessage.To.Add("[email protected]") 
    MyMailMessage.Subject = "Email Confirmation" 
    MyMailMessage.Body = "TESTING" 
    'MyMailMessage.Body = "<html>" & RegisterUser.UserName & "Link: $" & "<br/> " & "</html>" 

    'Create the SMTPClient object and specify the SMTP GMail server 
    Dim SMTPServer As New SmtpClient("smtp.gmail.com") 
    SMTPServer.Port = 588 
    SMTPServer.Credentials = New System.Net.NetworkCredential("[email protected]", "Password") 
    SMTPServer.EnableSsl = True 

    Try 
     SMTPServer.Send(MyMailMessage) 
     'MessageBox.Show("Email Sent") 
    Catch ex As SmtpException 
     'MessageBox.Show(ex.Message) 
    End Try 


    Dim continueUrl As String = RegisterUser.ContinueDestinationPageUrl 
    If String.IsNullOrEmpty(continueUrl) Then 
     continueUrl = "~/" 
    End If 

    Response.Redirect(continueUrl) 
End Sub 
End Class 

Любая помощь?

+2

Ну, это пустое предложение 'Catch', поглощающее все связанные с почтой исключения, сделает его действительно * легко диагностировать ошибку, не так ли? –

ответ

0

Так что я закончил тем, что использовать порт = 587

Спасибо за помощь!

1

Изменить номер порта Gmail SMTP порт: 465

Используйте этот

SMTPServer.Port = 465 
+0

Теперь я получаю таймаут. Как долго это займет? – DDDD

+0

Использование SMTPServer.UseDefaultCredentials = False до SMTPServer.Credentials – Sudz

+0

Также задано значение SMTPServer.Timeout = 10 – Sudz

Смежные вопросы