mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-15 09:42:56 -07:00
fix(newsletter): 🐛 Fixed a few small bugs in the newsletter
Fixed an issue where if you only had external users, it wouldn't send. Fixed another issue where it didn't cater for potential duplicate email addresses
This commit is contained in:
parent
d12733c243
commit
21dba4c524
3 changed files with 20 additions and 16 deletions
|
@ -29,6 +29,8 @@ namespace Ombi.Schedule.Tests
|
|||
yield return new TestCaseData("https://google.com:3577/", "1").Returns("https://google.com:3577/unsubscribe/1").SetName("Port With Slash");
|
||||
yield return new TestCaseData("", "1").Returns(string.Empty).SetName("Missing App URL empty");
|
||||
yield return new TestCaseData(null, "1").Returns(string.Empty).SetName("Missing App URL null");
|
||||
yield return new TestCaseData("hty", string.Empty).Returns(string.Empty).SetName("Missing ID empty");
|
||||
yield return new TestCaseData("hty", null).Returns(string.Empty).SetName("Missing ID null");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -208,13 +208,7 @@ namespace Ombi.Schedule.Jobs.Ombi
|
|||
|
||||
if (!test)
|
||||
{
|
||||
// Get the users to send it to
|
||||
var users = await _userManager.GetUsersInRoleAsync(OmbiRoles.ReceivesNewsletter);
|
||||
if (!users.Any())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var users = new List<OmbiUser>();
|
||||
foreach (var emails in settings.ExternalEmails)
|
||||
{
|
||||
users.Add(new OmbiUser
|
||||
|
@ -224,11 +218,23 @@ namespace Ombi.Schedule.Jobs.Ombi
|
|||
});
|
||||
}
|
||||
|
||||
// Get the users to send it to
|
||||
users.AddRange(await _userManager.GetUsersInRoleAsync(OmbiRoles.ReceivesNewsletter));
|
||||
if (!users.Any())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var messageContent = ParseTemplate(template, customization);
|
||||
var email = new NewsletterTemplate();
|
||||
|
||||
foreach (var user in users)
|
||||
{
|
||||
foreach (var user in users.DistinctBy(x => x.Email))
|
||||
{ // Get the users to send it to
|
||||
if (user.Email.IsNullOrEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var url = GenerateUnsubscribeLink(customization.ApplicationUrl, user.Id);
|
||||
var html = email.LoadTemplate(messageContent.Subject, messageContent.Message, body, customization.Logo, url);
|
||||
|
||||
|
@ -243,11 +249,6 @@ namespace Ombi.Schedule.Jobs.Ombi
|
|||
Subject = messageContent.Subject
|
||||
};
|
||||
|
||||
// Get the users to send it to
|
||||
if (user.Email.IsNullOrEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
// Send the message to the user
|
||||
message.To.Add(new MailboxAddress(user.Email.Trim(), user.Email.Trim()));
|
||||
|
||||
|
@ -391,7 +392,7 @@ namespace Ombi.Schedule.Jobs.Ombi
|
|||
|
||||
public static string GenerateUnsubscribeLink(string applicationUrl, string id)
|
||||
{
|
||||
if (!applicationUrl.HasValue())
|
||||
if (!applicationUrl.HasValue() || !id.HasValue())
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
|
3
src/Ombi/.vscode/settings.json
vendored
3
src/Ombi/.vscode/settings.json
vendored
|
@ -16,6 +16,7 @@
|
|||
"request-limits",
|
||||
"notifications",
|
||||
"settings",
|
||||
"user-management"
|
||||
"user-management",
|
||||
"newsletter"
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue