Шаблонное приложение asp.net для веб-форм (версия 4.6.1) с индивидуальной аутентификацией пользователя содержит комментарий в коде, который гласит: «Подключите свою службу электронной почты здесь, чтобы отправить электронное письмо». Я хотел бы использовать это с кодом шаблонов, чтобы отправить подтверждение по электронной почте новым пользователям. Однако я не могу понять, как «подключить» мой почтовый сервис к сетке отправки.
Я использую vb.net, и в Интернете нет примеров, которые я мог бы найти. Я нашел пример в C # на https://docs.microsoft.com/en-us/aspnet/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity и преобразовал их код в vb.net, как показано ниже, но я получаю сообщения о том, что IIdentityMessageService может наследовать только от других классов и что типы SendGridMessage, NetworkCredentials и Web являются не определено.
Это код из шаблона:
Public Class EmailService
Implements IIdentityMessageService
Public Function SendAsync(message As IdentityMessage) As Task Implements IIdentityMessageService.SendAsync
' Plug in your email service here to send an email.
Return Task.FromResult(0)
End Function
End Class
И это код, который я заменил код шаблона:
Public Class EmailService
Inherits IIdentityMessageService
Public Function SendAsync(ByVal message As IdentityMessage) As Task
Return configSendGridasync(message)
End Function
Private Function configSendGridasync(ByVal message As IdentityMessage) As Task
Dim myMessage = New SendGridMessage()
myMessage.AddTo(message.Destination)
myMessage.From = New System.Net.Mail.MailAddress("Joe@contoso.com", "Joe S.")
myMessage.Subject = message.Subject
myMessage.Text = message.Body
myMessage.Html = message.Body
Dim credentials = New NetworkCredential(ConfigurationManager.AppSettings("mailAccount"), ConfigurationManager.AppSettings("mailPassword"))
Dim transportWeb = New Web(credentials)
If transportWeb IsNot Nothing Then
Return transportWeb.DeliverAsync(myMessage)
Else
Return Task.FromResult(0)
End If
End Function
End Class
Мой импорт:
Imports System.Security.Claims
Imports System.Threading.Tasks
Imports Microsoft.AspNet.Identity
Imports Microsoft.AspNet.Identity.EntityFramework
Imports Microsoft.AspNet.Identity.Owin
Imports Microsoft.Owin
Imports Microsoft.Owin.Security
Imports SendGrid
Imports SendGrid.Helpers
Imports SendGrid.SendGridClient
И ошибки:
Если я изменяю «Inherits IIdentityMessageService» на «Реализует IIdentityMessageService», я получаю следующие ошибки:
Я хотел бы знать, как поместить в этот код учетные данные моей сетки отправки, чтобы он заработал.