tytd-email-server/Model/SMTPConfig.cs

43 lines
1.4 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 Tesses.YouTubeDownloader;
using Tesses.YouTubeDownloader.MailKit;
namespace tytdemail.Model;
public class SMTPConfig
{
public string? Username {get;set;}
public string? Password {get;set;}
public string? SmtpServer {get;set;}
public int SmtpPort {get;set;}=587;
public string? FromEmail {get;set;}
public string? ToEmail {get;set;}
public MailKit.Security.SecureSocketOptions SecureOption {get;set;}=MailKit.Security.SecureSocketOptions.StartTls;
public bool IgnoreCertError {get;set;}
public static IDownloader? Create(IConfiguration configuration)
{
SMTPConfig? config;
try{
config=configuration.GetValue<SMTPConfig>("SMTP");
}catch(Exception ex){
_=ex;
return null;
}
string? email=config.ToEmail;
if(string.IsNullOrWhiteSpace(email)) email="tytd@tesses.net";
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);
return downloader;
}
return null;
}
}