Solved, thanks @alper
in debug mode ABP doesn't send email, check your logs to see the email body.
Is it possible to check in debug mode ?
** Build Release > Deploy to Production > Administration Audit Logs :**
System.FormatException: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters. at System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength) at System.Convert.FromBase64String(String s) at Volo.Abp.Security.Encryption.StringEncryptionService.Decrypt(String cipherText, String passPhrase, Byte[] salt) at Volo.Abp.Settings.SettingEncryptionService.Decrypt(SettingDefinition settingDefinition, String encryptedValue) at Volo.Abp.Settings.SettingProvider.GetOrNullAsync(String name) at Volo.Abp.Emailing.EmailSenderConfiguration.GetNotEmptySettingValueAsync(String name) at Volo.Abp.Emailing.Smtp.SmtpEmailSender.BuildClientAsync() at Volo.Abp.Emailing.Smtp.SmtpEmailSender.SendEmailAsync(MailMessage mail) at Volo.Abp.Emailing.EmailSenderBase.SendAsync(MailMessage mail, Boolean normalize) at Volo.Abp.Emailing.EmailSenderBase.SendAsync(String to, String subject, String body, Boolean isBodyHtml)
Related with this documentation : https://docs.abp.io/en/abp/latest/Settings
Problem : No email sent to email recipient, no error notification, what is missing ?
using Volo.Abp.Emailing;
using Volo.Abp.Settings;
public class AppEmailSettingProvider : SettingDefinitionProvider
{
// https://www.emailarchitect.net/easendmail/kb/csharp.aspx?cat=4#send-email-using-office-365
public override void Define(ISettingDefinitionContext context)
{
var Host = context.GetOrNull(EmailSettingNames.Smtp.Host);
if (Host != null)
{
Host.DefaultValue = "smtp.office365.com";
}
var Port = context.GetOrNull(EmailSettingNames.Smtp.Port);
if (Port != null)
{
Port.DefaultValue = "587";
}
var UserName = context.GetOrNull(EmailSettingNames.Smtp.UserName);
if (UserName != null)
{
UserName.DefaultValue = "noreply@domain.com";
}
var Password = context.GetOrNull(EmailSettingNames.Smtp.Password);
if (Password != null)
{
Password.DefaultValue = "password";
}
//var Domain = context.GetOrNull(EmailSettingNames.Smtp.Domain);
//if (Domain != null)
//{
// Domain.DefaultValue = "";
//}
var EnableSsl = context.GetOrNull(EmailSettingNames.Smtp.EnableSsl);
if (EnableSsl != null)
{
EnableSsl.DefaultValue = "true";
}
var UseDefaultCredentials = context.GetOrNull(EmailSettingNames.Smtp.UseDefaultCredentials);
if (UseDefaultCredentials != null)
{
UseDefaultCredentials.DefaultValue = "false";
}
var DefaultFromAddress = context.GetOrNull(EmailSettingNames.DefaultFromAddress);
if (DefaultFromAddress != null)
{
DefaultFromAddress.DefaultValue = "noreply@domain.com";
}
var DefaultFromDisplayName = context.GetOrNull(EmailSettingNames.DefaultFromDisplayName);
if (DefaultFromDisplayName != null)
{
DefaultFromDisplayName.DefaultValue = "my Application";
}
}
}
* **Application Service :**
using Volo.Abp.Emailing;
public class MyAppService : ApplicationService, IMyAppService
{
private readonly IEmailSender _emailSender;
public MyAppService(
IEmailSender emailSender)
{
_emailSender = emailSender;
}
await _emailSender.SendAsync(
to: "myclient@domain.com",
subject: "Notification emai;",
body: $"{employee.Employee.FullName} just request leave approval"
);
I create this class at xxx.Application.Contracts, but getting error DefaultBrandingProvider, What iam missing ??, abp version 2.7.0
using Volo.Abp.DependencyInjection; using Volo.Abp.MultiTenancy; [Dependency(ReplaceServices = true)] public class COREBrandingProvider : DefaultBrandingProvider <== Error { //You can inject services here... private readonly ICurrentTenant _currentTenant;
public COREBrandingProvider(ICurrentTenant currentTenant)
{
_currentTenant = currentTenant;
}
public override string AppName => "Acme - MyBookStore";
public override string LogoUrl
{