CalendarEmail.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System.Text;
  2. using Abp.Configuration;
  3. using Abp.Dependency;
  4. using Abp.Domain.Uow;
  5. using Abp.Net.Mail;
  6. using VberZero.BaseSystem;
  7. using VberZero.BaseSystem.Users;
  8. using VberZero.Configuration;
  9. using VberZero.Net.Emailing;
  10. using VberZero.Tools.StringModel;
  11. namespace VberZero.DomainService.Calendar;
  12. public class CalendarEmail : EmailerBase, ICalendarEmail, ITransientDependency
  13. {
  14. public CalendarEmail(IEmailTemplateProvider emailTemplateProvider, IEmailSender emailSender, ICurrentUnitOfWorkProvider unitOfWorkProvider, IUnitOfWorkManager unitOfWorkManager, ISettingManager settingManager, IAppConfigurationAccessor appConfigurationAccessor) : base(emailTemplateProvider, emailSender, unitOfWorkProvider, unitOfWorkManager, settingManager, appConfigurationAccessor)
  15. {
  16. }
  17. private string DlStyle = "padding-left: 2em;padding-right:5px";
  18. public async Task SendCalendarNotifyAsync(User user, SysCalendar calendar)
  19. {
  20. await CheckMailSettingsEmptyOrNull();
  21. var emailTemplate = GetTitleAndSubTitle(user.TenantId, "日程提醒", calendar.Title);
  22. var mailMessage = new StringBuilder();
  23. mailMessage.AppendLine("<div style=\"text-align:left;width:100%;\">");
  24. //mailMessage.AppendLine($"<span><strong style=\"{DlStyle}\">日程信息</strong>: { calendar.Title}</span><br />");
  25. if (calendar.Start != null)
  26. {
  27. mailMessage.AppendLine($"<span><strong style=\"{DlStyle}\">开始日期</strong>: {calendar.Start.Value:yyyy-MM-dd HH:mm}</span><br />");
  28. }
  29. if (calendar.End != null)
  30. {
  31. mailMessage.AppendLine($"<span><strong style=\"{DlStyle}\">结束日期</strong>: {calendar.End.Value:yyyy-MM-dd HH:mm}</span><br />");
  32. }
  33. mailMessage.AppendLine($"<span><strong style=\"{DlStyle}\">日程详情</strong>: {calendar.Description}</span><br />");
  34. mailMessage.AppendLine("</div>");
  35. var link = $"{Configuration["App:WebSiteRootAddress"].Ew("/")}Home/Calendar";
  36. mailMessage.AppendLine("<br />");
  37. mailMessage.AppendLine("<br />");
  38. mailMessage.AppendLine("<br />");
  39. mailMessage.AppendLine("<div style=\"width:100%;text-align: center;\">");
  40. mailMessage.AppendLine("<span style=\"color:#00bb77;\">点击按钮跳转到日程</span><br /><br />");
  41. mailMessage.AppendLine($"<a style=\"{EmailButtonStyle}\" bg-color=\"{EmailButtonColor}\" href=\"{link}\">立即跳转</a>");
  42. mailMessage.AppendLine("<br />");
  43. mailMessage.AppendLine("<br />");
  44. mailMessage.AppendLine("<span style=\"font-size: 9pt;\">复制链接到浏览器打开</span><br />");
  45. mailMessage.AppendLine($"<span style=\"font-size: 8pt;\">{link}</span>");
  46. mailMessage.AppendLine("</div>");
  47. await ReplaceBodyAndSend(user.EmailAddress, "你有一个新日程", emailTemplate, mailMessage);
  48. }
  49. }