MailKit 第三方跨平台邮件组件

MailController.cs 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Threading.Tasks;
  6. using Microsoft.AspNetCore.Mvc;
  7. using Microsoft.Extensions.Options;
  8. using MyMailKit.Models.Dtos;
  9. using Utility;
  10. using Utility.Mail;
  11. // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
  12. namespace MyMailKit.Controllers
  13. {
  14. [Route("mailapi/Mail/[action]")]
  15. public class MailController : Controller
  16. {
  17. private readonly MailConfig mailConfig;
  18. public MailController(IOptions<MailConfig> configClassAccesser)
  19. {
  20. mailConfig = configClassAccesser.Value;
  21. }
  22. [HttpPost]
  23. public async Task<string> SendMail(MailDto dto)
  24. {
  25. List<string> fileNameList = new List<string>();
  26. List<Stream> streamList = new List<Stream>();
  27. var files = Request.Form.Files;
  28. foreach (var item in files)
  29. {
  30. var fileName = item.FileName;
  31. var memoryStream = new MemoryStream();
  32. await item.CopyToAsync(memoryStream);
  33. streamList.Add(memoryStream);
  34. fileNameList.Add(fileName);
  35. }
  36. var flag = MailUtil.SendMail(mailConfig, dto.AddressList, dto.Title, dto.Content, streamList, fileNameList).Result;
  37. if (flag)
  38. return "发送成功!";
  39. return "发送失败";
  40. }
  41. }
  42. }