Email: Difference between revisions

From Bitnami MediaWiki
Jump to navigation Jump to search
(Created page with "Return to Programming Guide")
 
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
<strong>How to send emails.</strong> Emails are sent out using the EmailHelper.cs class. Here is an example:
<pre>var firmContacts = await dbContext.FirmContact
  .AsNoTracking()
  .Where(contact => contact.FirmKey == 1
    && contact.Email != null
    && contact.Email != ""
    && contact.EmailTags.Contains("Foo")
  )
  .ToListAsync();
if (firmContacts.Count() == 0)
{
  return;
}
var emailFrom = await emailService.GetDoNotReplyEmailAddress();
if (string.IsNullOrWhiteSpace(emailFrom))
{
  return;
}
var emailTemplate = await emailTemplateService.GetByTemplateId("Foo");
if (emailTemplate == null)
{
  return;
}
var emailToList = EmailHelper.GetEmailList(firmContacts.Select(p => p.Email));
var templateData = new
{
  foo,
};
var stubble = new StubbleBuilder().Build();
var emailSubject = await stubble.RenderAsync(emailTemplate.Subject, templateData);
var emailBody = await stubble.RenderAsync(emailTemplate.Body, templateData);
//var exportReportResult = await reportService.ExportReport(model);
//var attachments = new List<Attachment>();
//attachments.Add(new Attachment(
//  exportFirmReportResult.Stream,
//  $"foo-bar-{DateTime.UtcNow.ToString("yyyyMMdd")}.pdf",
//  exportReportResult.ContentType
//  ));
EmailHelper.SendEmailWithAttachment(
  emailFrom,
  emailToList,
  null,
  null,
  emailSubject,
  emailBody,
  null/*attachments*/
  );</pre>
<strong>Test sending emails from Novus-Server</strong> by running e.g. curl -v -H 'Content-Type:application/json' -d '{"From":"donotreply@kiwanatechnologies.com","To":"albert.chan@visfuture.com,dgriffin@mayerglobal.com,hanika.dsouza@visfuture.com,tony.defeo@kiwanatechnologies.com","Subject":"Test email (NovusBackEnd)","Content":"Test email. Please ignore."}' https://novusapi.kiwanatechnologies.com/api/foo2/email.
<strong>Azure Functions resource.</strong> Currently, there’s no test method to test a test email from an Azure Functions resource in the Novus.AzureFunction project. We will have to create a new Azure function, perhaps one that uses a HTTP trigger.
Return to [[Programming Guide]]
Return to [[Programming Guide]]

Latest revision as of 18:52, 5 October 2023

How to send emails. Emails are sent out using the EmailHelper.cs class. Here is an example:

var firmContacts = await dbContext.FirmContact
  .AsNoTracking()
  .Where(contact => contact.FirmKey == 1
    && contact.Email != null
    && contact.Email != ""
    && contact.EmailTags.Contains("Foo")
  )
  .ToListAsync();
if (firmContacts.Count() == 0)
{
  return;
}

var emailFrom = await emailService.GetDoNotReplyEmailAddress();
if (string.IsNullOrWhiteSpace(emailFrom))
{
  return;
}

var emailTemplate = await emailTemplateService.GetByTemplateId("Foo");
if (emailTemplate == null)
{
  return;
}

var emailToList = EmailHelper.GetEmailList(firmContacts.Select(p => p.Email));

var templateData = new
{
  foo,
};
var stubble = new StubbleBuilder().Build();
var emailSubject = await stubble.RenderAsync(emailTemplate.Subject, templateData);
var emailBody = await stubble.RenderAsync(emailTemplate.Body, templateData);

//var exportReportResult = await reportService.ExportReport(model);
//var attachments = new List<Attachment>();
//attachments.Add(new Attachment(
//  exportFirmReportResult.Stream,
//  $"foo-bar-{DateTime.UtcNow.ToString("yyyyMMdd")}.pdf",
//  exportReportResult.ContentType
//  ));

EmailHelper.SendEmailWithAttachment(
  emailFrom,
  emailToList,
  null,
  null,
  emailSubject,
  emailBody,
  null/*attachments*/
  );

Test sending emails from Novus-Server by running e.g. curl -v -H 'Content-Type:application/json' -d '{"From":"donotreply@kiwanatechnologies.com","To":"albert.chan@visfuture.com,dgriffin@mayerglobal.com,hanika.dsouza@visfuture.com,tony.defeo@kiwanatechnologies.com","Subject":"Test email (NovusBackEnd)","Content":"Test email. Please ignore."}' https://novusapi.kiwanatechnologies.com/api/foo2/email.

Azure Functions resource. Currently, there’s no test method to test a test email from an Azure Functions resource in the Novus.AzureFunction project. We will have to create a new Azure function, perhaps one that uses a HTTP trigger.


Return to Programming Guide