using System.Net.Mail;
using System.Threading.Tasks;
using Castle.Core.Logging;
namespace Abp.Net.Mail
{
///
/// This class is an implementation of as similar to null pattern.
/// It does not send emails but logs them.
///
public class NullEmailSender : EmailSenderBase
{
public ILogger Logger { get; set; }
///
/// Creates a new object.
///
/// Configuration
public NullEmailSender(IEmailSenderConfiguration configuration)
: base(configuration)
{
Logger = NullLogger.Instance;
}
protected override Task SendEmailAsync(MailMessage mail)
{
Logger.Warn("USING NullEmailSender!");
Logger.Debug("SendEmailAsync:");
LogEmail(mail);
return Task.FromResult(0);
}
protected override void SendEmail(MailMessage mail)
{
Logger.Warn("USING NullEmailSender!");
Logger.Debug("SendEmail:");
LogEmail(mail);
}
private void LogEmail(MailMessage mail)
{
Logger.Debug(mail.To.ToString());
Logger.Debug(mail.CC.ToString());
Logger.Debug(mail.Subject);
Logger.Debug(mail.Body);
}
}
}