Esempio n. 1
0
        public void Send(string to, string subject, string html, string from = null)
        {
            // create message
            var email = new MimeMessage();

            email.From.Add(MailboxAddress.Parse(from ?? _appSettings.EmailFrom));
            email.To.Add(MailboxAddress.Parse(to));
            email.Subject = subject;
            email.Body    = new TextPart(TextFormat.Html)
            {
                Text = html
            };

            // send email
            _smtpClient.Connect(_appSettings.SmtpHost, _appSettings.SmtpPort, _appSettings.SmtpTls ? SecureSocketOptions.StartTls : SecureSocketOptions.Auto);
            try
            {
                if (!string.IsNullOrWhiteSpace(_appSettings.SmtpUser))
                {
                    _smtpClient.Authenticate(_appSettings.SmtpUser, _appSettings.SmtpPass);
                }
                _smtpClient.Send(email);
            }
            finally
            {
                _smtpClient.Disconnect(true);
            }
        }
Esempio n. 2
0
        public async Task SendEmailAsync(MailRequest mailRequest)
        {
            var email = new MimeMessage();

            email.Sender = MailboxAddress.Parse(_mailSettings.Mail);
            email.To.Add(MailboxAddress.Parse(mailRequest.ToEmail));
            email.Subject = mailRequest.Subject;
            var builder = new BodyBuilder();

            if (mailRequest.Attachments != null)
            {
                byte[] fileBytes;
                foreach (var file in mailRequest.Attachments)
                {
                    if (file.Length > 0)
                    {
                        using (var ms = new MemoryStream())
                        {
                            file.CopyTo(ms);
                            fileBytes = ms.ToArray();
                        }
                        builder.Attachments.Add(file.FileName, fileBytes, ContentType.Parse(file.ContentType));
                    }
                }
            }
            builder.HtmlBody = mailRequest.Body;
            email.Body       = builder.ToMessageBody();
            //using var smtp = new SmtpClient();
            _smtpClient.Connect(_mailSettings.Host, _mailSettings.Port, SecureSocketOptions.StartTls);
            _smtpClient.Authenticate(_mailSettings.Mail, _mailSettings.Password);
            await _smtpClient.SendAsync(email);

            _smtpClient.Disconnect(true);
        }
Esempio n. 3
0
        public void The_server_details_are_correct()
        {
            // When
            emailService.SendEmail(EmailTestHelper.GetDefaultEmail());

            // Then
            A.CallTo(() =>
                     smtpClient.Connect(
                         "smtp.example.com",
                         25,
                         SecureSocketOptions.Auto,
                         default
                         )
                     )
            .MustHaveHappened();
        }
Esempio n. 4
0
 public void Connect()
 {
     client.ServerCertificateValidationCallback = (s, c, h, e) => true;
     client.Connect(this.emailOptions.Smtp.Host, this.emailOptions.Smtp.Port, this.emailOptions.Smtp.EnableSSL);
     client.Authenticate(this.emailOptions.Smtp.Username, this.emailOptions.Smtp.Password);
 }