12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using System;
- using System.IO;
- using Microsoft.Azure.Functions.Worker;
- //using Microsoft.Azure.WebJobs;
- using Microsoft.Azure.WebJobs.Host;
- using Microsoft.Extensions.Logging;
- using RestSharp;
- using RestSharp.Authenticators;
-
- namespace ClockifyReport
- {
- public class Function3
- {
-
- private readonly ILogger _logger;
-
- private static string SenderAddress = Environment.GetEnvironmentVariable("SenderAddress");
- private static string SenderDisplayName = Environment.GetEnvironmentVariable("SenderDisplayName");
- private static string MailGunApiKey = Environment.GetEnvironmentVariable("MailGunApiKey");
- private static string Domain = Environment.GetEnvironmentVariable("Domain");
- private static string MailTo = Environment.GetEnvironmentVariable("MailTo");
-
- public Function3(ILoggerFactory loggerFactory)
- {
- _logger = loggerFactory.CreateLogger<Function3>();
- }
-
- [Function("Function3")]
- public void Run([BlobTrigger("report-container/{name}", Connection = "AzureWebJobsStorage")] byte[] fileData, string name, ILogger log)
- {
- string fileName = string.Format($"BlackRockReport_{DateTime.Now.ToString("f")}.xls");
-
- var client = new RestClient("https://api.mailgun.net/v3");
- client.Authenticator = new HttpBasicAuthenticator("api", MailGunApiKey);
-
-
- MemoryStream memoryStream = new MemoryStream(fileData);
- memoryStream.Position = 0;
-
- RestRequest request = new RestRequest();
- request.AddParameter("domain", Domain, ParameterType.UrlSegment);
- request.Resource = "{domain}/messages";
- request.AddParameter("from", $"{SenderDisplayName} <{SenderAddress}>");
- request.AddParameter("to", MailTo);
- request.AddParameter("subject", "BlackRock Report");
- request.AddParameter("html", string.Format("Here is yours report for current week. {0}", fileName));
- request.AddFile("attachment", memoryStream.ToArray(), fileName);
- request.Method = Method.Post;
- client.Execute(request);
-
-
-
-
-
- _logger.LogInformation("Email sent successfully!");
- }
- }
- }
|