Guest User

Untitled

a guest
Jun 19th, 2018
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. using Renci.SshNet;
  2. using SendGrid;
  3. using SendGrid.Helpers.Mail;
  4. using System;
  5. using System.IO;
  6. using System.Linq;
  7.  
  8. namespace PlayBall
  9. {
  10. internal class Program
  11. {
  12. private static void Main(string[] args)
  13. {
  14. var _sendGridApiKey = "";
  15.  
  16. Console.WriteLine("Connecting...");
  17.  
  18. using (var sftpClient = new SftpClient("server", "user", new PrivateKeyFile("rsa.key")))
  19. {
  20. sftpClient.Connect();
  21.  
  22. var files = sftpClient.ListDirectory("/directory");
  23. var mostRecentFile = files.OrderByDescending(f => f.Name).FirstOrDefault();
  24.  
  25. if (mostRecentFile == null)
  26. {
  27. Console.WriteLine("Failed to get most recent file.");
  28. return;
  29. }
  30.  
  31. Console.WriteLine($"{mostRecentFile.Name}");
  32.  
  33. using (var ms = new MemoryStream())
  34. {
  35. sftpClient.DownloadFile(mostRecentFile.FullName, ms);
  36. var fileContents = Convert.ToBase64String(ms.ToArray());
  37.  
  38. var mailClient = new SendGridClient(_sendGridApiKey);
  39.  
  40. var msg = new SendGridMessage()
  41. {
  42. From = new EmailAddress("user@example.com", "Example User"),
  43. Subject = "Recent File",
  44. PlainTextContent = "Attached is the most recent file by name.",
  45. };
  46. msg.AddTo(new EmailAddress("anotheruser@example.com"));
  47.  
  48. msg.AddAttachment(mostRecentFile.Name, fileContents);
  49.  
  50. var response = mailClient.SendEmailAsync(msg).Result;
  51. Console.WriteLine(response.StatusCode);
  52. }
  53. }
  54. }
  55. }
  56. }
Add Comment
Please, Sign In to add comment