tytd-email-server/Pages/Index.cshtml.cs

72 lines
2.0 KiB
C#
Raw Permalink Normal View History

2023-01-12 12:08:43 +00:00
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using tytdemail.Model;
using Tesses.YouTubeDownloader.MailKit;
using Tesses.YouTubeDownloader;
namespace tytdemail.Pages;
public class IndexModel : PageModel
{
[Microsoft.AspNetCore.Components.Inject]
public IConfiguration? Configuration {get;set;}
[BindProperty]
public string Ids {get;set;}="";
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public void OnGet()
{
try{
config=Configuration.GetValue<SMTPConfig>("SMTP");
}catch(Exception ex)
{
_=ex;
}
}
private SMTPConfig? config;
public bool ConfigNull
{
get{return config == null;}
}
public string Email {get{
if(config==null || string.IsNullOrWhiteSpace(config.ToEmail))
{
return "tytd@tesses.net";
}
return config.ToEmail;
}}
public async Task<IActionResult> OnPostAsync()
{
try{
config=Configuration.GetValue<SMTPConfig>("SMTP");
}catch(Exception ex)
{
_=ex;
}
if(ModelState.IsValid && config != null)
{
if(!string.IsNullOrWhiteSpace(config.SmtpServer) && !string.IsNullOrWhiteSpace(config.Username) && !string.IsNullOrWhiteSpace(config.Password) && !string.IsNullOrWhiteSpace(config.FromEmail))
{
SMTPDownloader downloader = new SMTPDownloader(config.SmtpServer,config.FromEmail,Email,config.Username,config.Password,config.SmtpPort,config.SecureOption);
foreach(var item in Ids.Split(new char[]{'\r','\n'}))
{
await downloader.AddItemAsync(item);
}
}
}
Ids="";
return RedirectToPage("Index");
}
}