Как подключить почтовый сервис к приложению asp.net? - PullRequest
0 голосов
/ 20 июня 2019

Шаблонное приложение 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

И ошибки:

enter image description here

Если я изменяю «Inherits IIdentityMessageService» на «Реализует IIdentityMessageService», я получаю следующие ошибки:

enter image description here

Я хотел бы знать, как поместить в этот код учетные данные моей сетки отправки, чтобы он заработал.

...