Update to mailkit for better email standard

This commit is contained in:
2025-09-01 10:16:38 -07:00
parent 3e947e8caf
commit 34dca5f57f
5 changed files with 29 additions and 20 deletions
+2 -1
View File
@@ -12,7 +12,8 @@ Server:
Need to update notification email Need to update notification email
Create page to notify cx that their work email has been verified Create page to notify cx that their work email has been verified
Verify that each resume section belongs to the resume it was created for: Emails:
Make emails follow theme of website better
Client: Client:
jobs/editor: jobs/editor:
+1 -1
View File
@@ -91,7 +91,7 @@ namespace BoredCareers.Controllers {
EmailContents = Substitue(EmailContents, "@ID", CompanyID.ToString()); EmailContents = Substitue(EmailContents, "@ID", CompanyID.ToString());
EmailContents = Substitue(EmailContents, "@VerifyPassword", test.EmailToken); EmailContents = Substitue(EmailContents, "@VerifyPassword", test.EmailToken);
string result = _emailContext.Send(test.Email, EmailService.CompanyVerifyEmailSubject, EmailContents); string result = await _emailContext.Send(test.Email, EmailService.CompanyVerifyEmailSubject, EmailContents);
_emailContext._SentEmails.Add(key, DateTime.Now); _emailContext._SentEmails.Add(key, DateTime.Now);
return Redirect("/"); return Redirect("/");
} }
+1
View File
@@ -9,6 +9,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.8" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.8" />
<PackageReference Include="MailKit" Version="4.13.0" />
<PackageReference Include="BCrypt.Net-Next" Version="4.0.3" /> <PackageReference Include="BCrypt.Net-Next" Version="4.0.3" />
<PackageReference Include="MySql.Data" Version="9.4.0" /> <PackageReference Include="MySql.Data" Version="9.4.0" />
<PackageReference Include="Stripe.net" Version="48.2.0" /> <PackageReference Include="Stripe.net" Version="48.2.0" />
@@ -51,7 +51,7 @@ namespace BoredCareers.Services.TimerService {
string emailbody = EmailService.JobAutoClosedBody; string emailbody = EmailService.JobAutoClosedBody;
//Substitue(emailbody, "@job", listing.JobListingID); //Substitue(emailbody, "@job", listing.JobListingID);
_em.Send(email, EmailService.JobAutoClosedSubject, emailbody); await _em.Send(email, EmailService.JobAutoClosedSubject, emailbody);
} }
} }
@@ -1,4 +1,7 @@
using System.Net.Mail; using System.Threading.Tasks;
using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;
namespace BoredCareers.Services { namespace BoredCareers.Services {
public partial class EmailService { public partial class EmailService {
@@ -17,25 +20,29 @@ namespace BoredCareers.Services {
EmailPassword = _EmailPassword; EmailPassword = _EmailPassword;
} }
public string Send( string Destination, string Subject, string Body ) { public async Task<string> Send(string Destination, string Subject, string Body) {
using (SmtpClient client = new SmtpClient( EmailServer, EmailPort )){
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential( EmailAddress, EmailPassword );
try { try {
MailMessage msg = new MailMessage(){ MimeMessage message = new MimeMessage();
IsBodyHtml = true, message.From.Add(new MailboxAddress(EmailAddress.Split('@')[0], EmailAddress));
Subject = Subject, message.To.Add(new MailboxAddress(Destination.Split('@')[0], Destination));
Body = Body message.Subject = Subject;
};
msg.From = new MailAddress( EmailAddress, "no-reply" ); BodyBuilder messageBody = new BodyBuilder();
msg.To.Add( new MailAddress( Destination ) ); messageBody.HtmlBody = Body;
client.Send( msg );
return "Success"; message.Body = messageBody.ToMessageBody();
using (SmtpClient client = new SmtpClient()) {
await client.ConnectAsync(EmailServer, EmailPort);
client.Authenticate(new SaslMechanismLogin(EmailAddress, EmailPassword));
string serverResponse = await client.SendAsync(message);
await client.DisconnectAsync(true);
return serverResponse;
}
} catch (Exception e) { } catch (Exception e) {
return "An Error Has Occurred Sending Email : " + e.ToString(); return "An Error Has Occurred Sending Email : " + e.ToString();
} }
} }
}
} }
} }