I'm trying to send a notification email, to users with ASP.NET Core 5.0 razor.
I can't understand what have I done wrong so that I can't send the email?
This is what I have done so far:
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group" >
<input asp-for="SendEmail.AdminEmail" class="form-control" value="@User.Identity.Name" readonly/>
<span asp-validation-for="SendEmail.AdminEmail" class="text-danger"></span>
</div>
<div class="form-group">
<input asp-for="SendEmail.ClientsEmail" class="form-control" value="test@mail.com" />
<span asp-validation-for="SendEmail.ClientsEmail" class="text-danger"></span>
</div>
<div class="form-group">
<input asp-for="SendEmail.Subject" class="form-control" placeholder="Subject"/>
<span asp-validation-for="SendEmail.Subject" class="text-danger"></span>
</div>
<div class="form-group">
<textarea asp-for="SendEmail.BodyText" class="form-control" style="min-height:50vh;max-height:50vh;" ></textarea>
<span asp-validation-for="SendEmail.BodyText" class="text-danger"></span>
</div>
<div class="form-group" style="text-align:center;">
<button class="btn btn-sm btn-outline-info font-weight-bold" style="font-size: 110%;float:unset;min-width:100px;">
Send
</button>
</div>
</form>
And the backend code :
public ActionResult OnPostAsync()
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress("admin@mymail.com");
msg.To.Add(new MailAddress("test@mymail.com"));
msg.Subject = SendEmail.Subject;
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", Convert.ToInt32(587));
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("admin@mymail.com", "******");
smtpClient.Credentials = credentials;
smtpClient.EnableSsl = true;
smtpClient.Send(msg);
return RedirectToPage("./Index");
}
This is the error I am getting:
An unhandled exception occurred while processing the request. ExtendedSocketException: An attempt was made to access a socket in a way forbidden by its access permissions. [::ffff:142.250.145.108]:587
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
SmtpException: Failure sending mail.System.Net.Mail.SmtpClient.Send(MailMessage message)