앞서 언급 한 여러 상황으로 인해 Gmail 계정에서 이메일을 보내는 데 문제가 있습니다. 다음은 작동 방식과 유연성을 동시에 유지하는 방법에 대한 요약입니다.
- 먼저 Gmail 계정을 설정하십시오.
- IMAP을 사용하도록 설정하고 올바른 최대 메시지 수를 지정하십시오 (여기서 가능).
- 비밀번호는 7 자 이상이고 Google에 따라 강력한 비밀번호 여야합니다.
- 보안 문자 코드를 먼저 입력하지 않아도됩니다. 브라우저에서 테스트 이메일을 보내면됩니다.
- web.config (또는 app.config, 아직 시도하지는 않았지만 Windows 응용 프로그램에서 작동하게하는 것이 쉽다고 가정합니다)에서 변경하십시오.
<configuration>
<appSettings>
<add key="EnableSSLOnMail" value="True"/>
</appSettings>
<!-- other settings -->
...
<!-- system.net settings -->
<system.net>
<mailSettings>
<smtp from="yourusername@gmail.com" deliveryMethod="Network">
<network
defaultCredentials="false"
host="smtp.gmail.com"
port="587"
password="stR0ngPassW0rd"
userName="yourusername@gmail.com"
/>
<!-- When using .Net 4.0 (or later) add attribute: enableSsl="true" and you're all set-->
</smtp>
</mailSettings>
</system.net>
</configuration>
Add a Class to your project:
Imports System.Net.Mail
Public Class SSLMail
Public Shared Sub SendMail(ByVal e As System.Web.UI.WebControls.MailMessageEventArgs)
GetSmtpClient.Send(e.Message)
'Since the message is sent here, set cancel=true so the original SmtpClient will not try to send the message too:
e.Cancel = True
End Sub
Public Shared Sub SendMail(ByVal Msg As MailMessage)
GetSmtpClient.Send(Msg)
End Sub
Public Shared Function GetSmtpClient() As SmtpClient
Dim smtp As New Net.Mail.SmtpClient
'Read EnableSSL setting from web.config
smtp.EnableSsl = CBool(ConfigurationManager.AppSettings("EnableSSLOnMail"))
Return smtp
End Function
End Class
그리고 지금 당신이 이메일을 보내려고 할 때마다 당신이해야 할 일은 전화 SSLMail.SendMail
:
예 : PasswordRecovery 컨트롤이있는 페이지에서 :
Partial Class RecoverPassword
Inherits System.Web.UI.Page
Protected Sub RecoverPwd_SendingMail(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MailMessageEventArgs) Handles RecoverPwd.SendingMail
e.Message.Bcc.Add("webmaster@example.com")
SSLMail.SendMail(e)
End Sub
End Class
또는 코드의 어느 곳에서나 전화 할 수 있습니다.
SSLMail.SendMail(New system.Net.Mail.MailMessage("from@from.com","to@to.com", "Subject", "Body"})
이것이이 게시물에 빠진 사람에게 도움이되기를 바랍니다. (VB.NET을 사용했지만 .NET 언어로 변환하는 것이 쉽지 않다고 생각합니다.)