Я пытаюсь реализовать функцию отправки писем, когда пользователь регистрирует мою страницу, а также для сброса паролей. Я занимаюсь исследованиями, но я не мог получить хорошие ресурсы. Все, что я нашел, основано на старых примерах, используя sendgrid v2.0
(очень старая версия). Кто-нибудь, кто разработал эту функциональность в прошлом году и имеет какое-то руководство? Я исследовал следующие руководства: https://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identityИспользуйте mvc для получения подтверждения по электронной почте
ответ
В этом есть две части, и вы недостаточно четко определились, где у вас проблемы. По сути, отправить по электронной почте вам необходимо:
- SMTP-сервер
- код, чтобы создать электронную почту и использовать сервер SMTP для отправки его
Вы упомянули sendgrid, который просто SMTP сервер (или действительно сетка серверов SMTP, отсюда и название); это просто способ отправить электронное письмо. Конечно, есть и другие варианты. Вы можете включить встроенный SMTP-сервер в Windows Server или использовать Exchange, если вы работаете в корпоративной среде. Вы даже можете использовать что-то вроде SMTP-сервера Gmail, но если вы используете это для чего-то большего, чем тестирование или локальное развитие, вы, вероятно, получите запрет.
Что касается фактического кода для создания электронной почты, для этого у вас есть SmtpClient
, хотя я бы не рекомендовал его использовать непосредственно в приложении MVC. Лучше использовать что-то вроде Postal, которое дает вам API более высокого уровня и использует виды Razor для создания ваших электронных писем, среди прочего. Под капотом он также использует SmtpClient
.
спасибо за ответ – rockyargento
Я не уверен, что это поможет вам, но я недавно внедрил следующее на сайте MVC, который я разработал для отправки писем с запросами на подтверждение.
От действия контроллера я зову следующий метод:
public static void SendMail(MailMessage Msg)
{
SmtpClient _SMTP = new SmtpClient(SMTP, SMTP_Port);
_SMTP.UseDefaultCredentials = false;
_SMTP.Credentials = new System.Net.NetworkCredential(User, Password);
_SMTP.Send(Msg);
}
И MailMessage создается с помощью следующего метода:
public static MailMessage BuildEnqNotificationMessage(string _To, string _Body)
{
MailMessage Msg = new MailMessage();
Msg.From = new MailAddress(FromAddress, FromFriendly);
Msg.Subject = "New Sales Enquiry";
Msg.To.Add(_To);
Msg.Body = _Body;
Msg.IsBodyHtml = true;
return Msg;
}
Это реализующий точно так же, как вы бы реализовать его в WebForms.
Спасибо за ваш ответ! и принимая ваше время – rockyargento
http://www.aspsnippets.com/Articles/Send-user-Confirmation-email-after-Registration-with-Activation-Link-in-ASPNet.aspx Это поможет вам – onur
спасибо, что нашли время помогите мне – rockyargento