Browse Source

Smtp client fix.

pull/492/head
Sebastian 7 years ago
parent
commit
9e6b787981
  1. 24
      backend/extensions/Squidex.Extensions/Actions/Email/EmailActionHandler.cs
  2. 27
      backend/src/Squidex.Infrastructure/Email/SmtpEmailSender.cs

24
backend/extensions/Squidex.Extensions/Actions/Email/EmailActionHandler.cs

@ -43,20 +43,22 @@ namespace Squidex.Extensions.Actions.Email
protected override async Task<Result> ExecuteJobAsync(EmailJob job, CancellationToken ct = default)
{
using (var client = new SmtpClient(job.ServerHost, job.ServerPort))
using (var client = new SmtpClient(job.ServerHost, job.ServerPort)
{
client.EnableSsl = job.ServerUseSsl;
client.Credentials = new NetworkCredential(job.ServerUsername, job.ServerPassword);
Credentials = new NetworkCredential(
job.ServerUsername,
job.ServerPassword),
using (var message = new MailMessage(job.MessageFrom, job.MessageTo))
EnableSsl = job.ServerUseSsl
})
{
using (ct.Register(client.SendAsyncCancel))
{
message.Subject = job.MessageSubject;
message.Body = job.MessageBody;
using (ct.Register(client.SendAsyncCancel))
{
await client.SendMailAsync(message);
}
await client.SendMailAsync(
job.MessageBody,
job.MessageBody,
job.MessageSubject,
job.MessageBody);
}
}

27
backend/src/Squidex.Infrastructure/Email/SmtpEmailSender.cs

@ -16,29 +16,28 @@ namespace Squidex.Infrastructure.Email
[ExcludeFromCodeCoverage]
public sealed class SmtpEmailSender : IEmailSender
{
private readonly SmtpClient smtpClient;
private readonly string sender;
private readonly SmptOptions options;
public SmtpEmailSender(IOptions<SmptOptions> options)
{
Guard.NotNull(options);
var config = options.Value;
this.options = options.Value;
}
smtpClient = new SmtpClient(config.Server, config.Port)
public async Task SendAsync(string recipient, string subject, string body)
{
using (var smtpClient = new SmtpClient(options.Server, options.Port)
{
Credentials = new NetworkCredential(
config.Username,
config.Password),
EnableSsl = config.EnableSsl
};
sender = config.Sender;
}
options.Username,
options.Password),
public Task SendAsync(string recipient, string subject, string body)
{
return smtpClient.SendMailAsync(sender, recipient, subject, body);
EnableSsl = options.EnableSsl
})
{
await smtpClient.SendMailAsync(options.Sender, recipient, subject, body);
}
}
}
}

Loading…
Cancel
Save