Exemplo n.º 1
0
        public static void SendTo(this EmailCredentials credentials, EmailMessage email, User recipient)
        {
            var mySmtpClient       = new SmtpClient(credentials.Client);
            var networkCredentials = new NetworkCredential(credentials.Username, credentials.Password);

            // set smtp-client with basicAuthentication
            mySmtpClient.UseDefaultCredentials = false;
            mySmtpClient.Credentials           = networkCredentials;
            mySmtpClient.EnableSsl             = true;
            mySmtpClient.Port           = credentials.Port;
            mySmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

            // add from,to mailaddresses
            var from   = new MailAddress(credentials.Username, "Expenses");
            var to     = new MailAddress(recipient.Email, recipient.Username);
            var myMail = new MailMessage(from, to);

            // set subject and encoding
            myMail.Subject         = email.Subject;
            myMail.SubjectEncoding = System.Text.Encoding.UTF8;

            // set body-message and encoding
            myMail.Body         = email.Body;
            myMail.BodyEncoding = System.Text.Encoding.UTF8;

            // text or html
            myMail.IsBodyHtml = true;

            mySmtpClient.Send(myMail);
        }
        public async Task SendMailAsync(EmailCredentials sender, string receiverAddresses, string text)
        {
            if (receiverAddresses.Length < 1)
            {
                throw new ArgumentException(nameof(receiverAddresses));
            }

            var message = InitializeAddresses(sender.Username, receiverAddresses);

            message.Subject = AppConstants.applicationName;
            message.Body    = text;

            var client = InitializeSmtpClient(sender);

            try
            {
                await client.SendMailAsync(message);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.InnerException);
                Console.ReadLine();
                return;
            }

            Console.WriteLine("Email sent");
        }
        private ExchangeService GetExchangeService(EmailCredentials credentials)
        {
            var url      = credentials.AccessEndPoint;
            var cacheKey = BuildCacheKey(credentials.Email);

            if (string.IsNullOrWhiteSpace(url))
            {
                url = _cacheRepository.Get <string>(cacheKey);
            }
            if (string.IsNullOrWhiteSpace(url))
            {
                var autodiscover = new AutodiscoverService(ExchangeVersion.Exchange2013_SP1)
                {
                    RedirectionUrlValidationCallback = x => true,
                    Credentials = new WebCredentials(credentials.Email, credentials.Password)
                };
                var userSettings = autodiscover.GetUsersSettings(new List <string>()
                {
                    credentials.Email
                }, UserSettingName.ExternalEwsUrl);

                var successResponse = userSettings.First(x => x.ErrorCode == AutodiscoverErrorCode.NoError);
                successResponse.TryGetSettingValue(UserSettingName.ExternalEwsUrl, out url);
                _cacheRepository.Put(cacheKey, url, new CacheRepositoryOptions());
            }
            var service =
                new ExchangeService(ExchangeVersion.Exchange2013_SP1)
            {
                Credentials = new WebCredentials(credentials.Email, credentials.Password),
                Url         = new Uri(url)
            };

            return(service);
        }
        protected void btnsubmit_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtemail.Text.Length > 0)
                {
                    string myIP = string.Empty;
                    try
                    {
                        string hostName = Dns.GetHostName();
                        myIP = Dns.GetHostByName(hostName).AddressList[0].ToString();
                    }
                    catch (Exception)
                    {
                    }



                    EmailCredentials objEmail = new EmailCredentials();

                    System.Net.Mime.ContentType mimeType = new System.Net.Mime.ContentType("text/html");

                    objEmail.From     = "From Email Address";
                    objEmail.UserName = "******";
                    objEmail.Password = "******";
                    objEmail.To       = "*****@*****.**";

                    if (txtbcc.Text.Trim().Length > 0)
                    {
                        objEmail.BCC = txtbcc.Text.Trim();
                    }



                    objEmail.SMTPMail = "smtp.gmail.com";
                    objEmail._Port    = 587;
                    objEmail._SSL     = true;
                    objEmail.Subject  = "This Email is generated from Email tester!! by " + myIP;
                    objEmail.Mail     = txtemail.Text.Trim();


                    if (SendMail(objEmail))
                    {
                        lblMessage.Text = "Email Sent Successfully!!!";
                    }
                    else
                    {
                        lblMessage.Text = "Email Sending Error!!";
                    }
                }
                else
                {
                    lblMessage.Text = "Please Paste html content to send it as an email!!";
                }
            }
            catch (Exception ex)
            {
                lblMessage.Text = ex.Message;
            }
        }
Exemplo n.º 5
0
        public RetrieveSecureEmailCredentials()
        {
            var configs = GetConfiguration.GetConfigs;

            EmailCredentials = configs.Configuration.GetSection("EmailCredentials")
                               .Get <EmailCredentials>();
        }
        public virtual async Task <bool> SendEmailAsync(
            SmtpSettings smtpSettings,
            ImapSettings imapSettings,
            EmailCredentials credentials,
            BaseEmailMessage <string> message)
        {
            var streams = new List <Stream>();

            try
            {
                var emailMessage = GetEmailMessage(credentials.Email, message);
                if (emailMessage == null)
                {
                    return(false);
                }
                message.Body = _emailHelperService.AttachGuidToBody(message.TrackingGuid, message.Body);

                var bodyBuilder = new BodyBuilder {
                    HtmlBody = message.Body
                };

                using (var client = new SmtpClient())
                {
                    if (message.Attachments != null)
                    {
                        PrepareAttachments(emailMessage, streams, message.Attachments, bodyBuilder);
                    }
                    else
                    {
                        emailMessage.Body = bodyBuilder.ToMessageBody();
                    }
                    await client.ConnectAsync(smtpSettings.SmtpHost, smtpSettings.SmtpPort);

                    client.AuthenticationMechanisms.Remove("XOAUTH2");
                    await client.AuthenticateAsync(credentials.Email, credentials.Password);

                    await client.SendAsync(emailMessage);

                    await client.DisconnectAsync(true);

                    if (!string.IsNullOrWhiteSpace(message.SentFolder))
                    {
                        AppendToFolder(imapSettings, credentials, emailMessage, message.SentFolder);
                    }
                    return(true);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(false);
            }
            finally
            {
                streams.ForEach(x => { x.Dispose(); });
            }
        }
Exemplo n.º 7
0
        public void SendHtmlAsync(EmailInfo emailInfo, EmailCredentials credentials)
        {
            var message = BuildEmailMessage(emailInfo);

            message.IsBodyHtml = true;

            this.BuildEmailClient(credentials)
            .SendMailAsync(message);
        }
Exemplo n.º 8
0
 public virtual async Task <bool> SendEmailAsync(
     SmtpSettings smtpSettings,
     ImapSettings imapSettings,
     EmailCredentials credentials,
     BaseEmailMessage <string> message)
 =>
 await GetEmailProvider(imapSettings, smtpSettings).SendEmailAsync(smtpSettings,
                                                                   imapSettings,
                                                                   credentials,
                                                                   message);
Exemplo n.º 9
0
        private SmtpClient BuildEmailClient(EmailCredentials credentials)
        {
            var host = this._configuration["Email:Host"];
            var port = Int32.Parse(this._configuration["Email:Port"]);

            return(new SmtpClient
            {
                Host = host,
                Port = port,
                EnableSsl = true,
                Credentials = new NetworkCredential(credentials.Username, credentials.Password)
            });
        }
        public async Task <bool> SendEmailAsync(
            SmtpSettings smtpSettings,
            ImapSettings imapSettings,
            EmailCredentials credentials,
            BaseEmailMessage <string> baseEmailMessage)
        {
            var service = GetExchangeService(credentials);
            var message = PrepareMessage(service, baseEmailMessage);

            PrepareAttachments(message, baseEmailMessage.Attachments);
            await message.SendAndSaveCopy(WellKnownFolderName.SentItems);

            return(true);
        }
        private static void AppendToFolder(ImapSettings settings, EmailCredentials credentials,
                                           MimeMessage emailMessage, string folder)
        {
            using (var imapClient = new ImapClient())
            {
                imapClient.Connect(settings.ImapHost, settings.ImapPort);
                imapClient.Authenticate(credentials.Email, credentials.Password);
                var personal   = imapClient.GetFolder(imapClient.PersonalNamespaces[0]);
                var sentFolder = personal.GetSubfolders()
                                 .FirstOrDefault(x => x.Name.ToLowerInvariant() == folder.ToLowerInvariant());
                if (sentFolder != null)
                {
                    sentFolder.Append(emailMessage);
                    sentFolder.Close();
                }

                imapClient.Disconnect(true);
            }
        }
Exemplo n.º 12
0
        public HttpResponseMessage VerifyEmail(users item)
        {
            var res = r.EmailExist(item.email);

            if (res == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotFound, $"El email no esta registrado"));
            }
            else
            {
                Random      rand   = new Random();
                int         codigo = rand.Next(1000, 9999);
                MailMessage mail   = new MailMessage();
                mail.To.Add(new MailAddress(item.email));
                mail.From       = new MailAddress("*****@*****.**");
                mail.Subject    = "Password recovery";
                mail.Body       = "Hola " + res.nombre + "Este es tu codigo de seguridad: <b>" + codigo + "</b>";
                mail.IsBodyHtml = true;

                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtp.gmail.com";
                smtp.Port = 587;
                smtp.UseDefaultCredentials = false;
                smtp.EnableSsl             = true;
                var credentials = new EmailCredentials();
                smtp.Credentials = new NetworkCredential(credentials.Email, credentials.pass);
                try
                {
                    smtp.Send(mail);
                    mail.Dispose();
                    codigos code = new codigos();
                    code.codigo  = codigo.ToString();
                    code.id_user = res.id_user;
                    v.Post(code);
                    return(Request.CreateResponse(HttpStatusCode.OK, code));
                }
                catch (Exception ex)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "Error " + ex.Message));
                }
            }
        }
        private SmtpClient InitializeSmtpClient(EmailCredentials sender)
        {
            using (CryptographyService cryptographyService = new CryptographyService())
            {
                sender.Password = cryptographyService.Decrypt(sender.Password);
            }

            var client = new SmtpClient();

            client.Credentials = new NetworkCredential()
            {
                UserName = sender.Username,
                Password = sender.Password,
            };

            client.Port      = ProjectConfigurationManager.DefaultSmtpPort;
            client.Host      = ProjectConfigurationManager.DefaultSmtpHost;
            client.EnableSsl = ProjectConfigurationManager.DefaultSmtpSSL;

            return(client);
        }
        public async Task SendOrderDetailsEmail(string toEmail, string subject, IEnumerable <Game> items, Address adress, decimal price)
        {
            string Body = System.IO.File.ReadAllText(@"C:\Users\adria\Projects\GamingShop\GamingShop.Service\EmailTemplates\Templates\OrderEmailTemplate.htm");

            Body = Body.Replace("#Country#", adress.Country);
            Body = Body.Replace("#City#", adress.City);
            Body = Body.Replace("#Street#", adress.Street);
            Body = Body.Replace("#PhoneNumber#", adress.PhoneNumber);
            Body = Body.Replace("#price#", price.ToString());

            foreach (var game in items)
            {
                Body += $"<p>{game.Title}</p>";
            }

            try
            {
                SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
                client.EnableSsl             = true;
                client.DeliveryMethod        = SmtpDeliveryMethod.Network;
                client.UseDefaultCredentials = false;
                client.Credentials           = new NetworkCredential(EmailCredentials.GetEmail(), EmailCredentials.GetPassword());

                MailMessage msg = new MailMessage();
                msg.IsBodyHtml = true;
                msg.To.Add(toEmail);
                msg.From    = new MailAddress(EmailCredentials.GetEmail());
                msg.Subject = subject;
                msg.Body    = Body;
                client.Send(msg);
            }
            catch (Exception ex)
            {
                // TODO: handle exception
                throw new InvalidOperationException(ex.Message);
            }
        }
Exemplo n.º 15
0
        public IIdentityMessageService CreateService(EmailCredentials credentials)
        {
            var email = credentials.EmailAddress.ToLower();

            if (!_servicies.ContainsKey(email))
            {
                IIdentityMessageService service;

                var emailType = GetEmailType(credentials.EmailAddress);
                switch (emailType)
                {
                case EmailType.Gmail:
                    service = new GmailService(credentials);
                    break;

                default:
                    throw new NotImplementedException($"{emailType}: there is no implemented instance for this type");
                }

                _servicies.Add(email, service);
            }

            return(_servicies[email]);
        }
Exemplo n.º 16
0
 /// <summary>
 /// Sends Email messages via gmail client
 /// </summary>
 /// <param name="sender">sender, from email credentials</param>
 public GmailService(EmailCredentials credentials)
 {
     _credentials = credentials;
 }
Exemplo n.º 17
0
 public EmailSender(IOptions <EmailCredentials> options, IOptions <SmtpSettings> settings)
 {
     _settings = settings.Value;
     _options  = options.Value;
 }
Exemplo n.º 18
0
 public void SendTextAsync(EmailInfo emailInfo, EmailCredentials credentials)
 {
     this.BuildEmailClient(credentials)
     .SendMailAsync(BuildEmailMessage(emailInfo));
 }
Exemplo n.º 19
0
 public EmailCredentials(EmailCredentials credentials)
 {
     Email          = credentials.Email;
     Password       = credentials.Password;
     AccessEndPoint = credentials.AccessEndPoint;
 }
Exemplo n.º 20
0
        public bool SendMail(EmailCredentials objEmail)
        {
            bool Issent = false;

            try
            {
                MailMessage MailMsg = new MailMessage();
                MailMsg.Subject = objEmail.Subject;
                MailMsg.From    = new MailAddress(objEmail.From);

                if (objEmail.To.Contains(","))
                {
                    foreach (var EmailTo in objEmail.To.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        MailMsg.To.Add(new MailAddress(EmailTo));
                    }
                }
                else
                {
                    MailMsg.To.Add(new MailAddress(objEmail.To));
                }


                if (objEmail.BCC != null)
                {
                    if (objEmail.BCC.Length > 0)
                    {
                        if (objEmail.BCC.Contains(","))
                        {
                            foreach (var EmailBCC in objEmail.BCC.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries))
                            {
                                MailMsg.Bcc.Add(new MailAddress(EmailBCC));
                            }
                        }
                        else
                        {
                            MailMsg.Bcc.Add(new MailAddress(objEmail.BCC));
                        }
                    }
                }



                //MailMsg.To.Add(new MailAddress(To));
                MailMsg.Priority   = MailPriority.High;
                MailMsg.Body       = objEmail.Mail;
                MailMsg.IsBodyHtml = true;
                SmtpClient SmtpMail = new SmtpClient();
                SmtpMail.Host = objEmail.SMTPMail;
                SmtpMail.UseDefaultCredentials = false;
                NetworkCredential basicInfo = new NetworkCredential(objEmail.UserName, objEmail.Password);
                SmtpMail.Credentials = basicInfo;
                SmtpMail.Port        = objEmail._Port;
                SmtpMail.EnableSsl   = objEmail._SSL;
                SmtpMail.Send(MailMsg);

                Issent = true;
            }
            catch (Exception)
            {
                Issent = false;
            }

            return(Issent);
        }
Exemplo n.º 21
0
 public EmailService(EmailCredentials credentials, CertificateInformation information = null, bool useCustomCertificateValidationCallback = false)
 {
     _credentials = credentials;
     _information = information;
     _useCustomCertificateValidationCallback = useCustomCertificateValidationCallback;
 }