Пример #1
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                string        title          = txtTitle.Text;
                string        content        = txtMessage.Text;
                List <string> customerEmails = getCustomerList();
                string        emailContent   = content;
                EmailClass    emailClass     = new EmailClass(customerEmails, title, emailContent, false);// change false to true

                if (EmailClass.isCredentialed())
                {
                    EmailCredential credential = (EmailCredential)Session["EmailCredential"];
                    emailClass.sendEmail(credential);
                }
                else
                {
                    Session["tempEmail"] = emailClass;
                    Response.Redirect(ResolveUrl("~/Staff/VerifyEmail.aspx?ReturnURL=" + Request.Url.AbsoluteUri));
                }
            }
            catch (Exception ex)
            {
                Response.Write("<script LANGUAGE='JavaScript' >alert('Error occur when sending email: " + ex.Message + "')</script>");
            }
        }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            string email    = txtEmail.Text;
            string password = txtPassword.Text;
            int    abc      = ddlEmailProvider.SelectedIndex;

            if (Session["tempEmail"] != null)
            {
                EmailClass emailClass = (EmailClass)Session["tempEmail"];

                try
                {
                    EmailCredential emailCredential = new EmailCredential(new NetworkCredential(email, password), EmailClass.getStmpClient(ddlEmailProvider.SelectedValue));
                    emailClass.sendEmail(emailCredential);
                    EmailClass.generateCredential(email, password, EmailClass.getStmpClient(ddlEmailProvider.SelectedValue));

                    string url = Request.QueryString["ReturnUrl"];
                    Response.Write(" <script language = 'javascript'> window.alert('Email has been sent. Redirecting previous page.'); window.location = '" + url + "';</script>");
                }
                catch (SmtpFailedRecipientsException stmpRecipientsException)
                {
                    lblError.Text = "Email failed to send to " + stmpRecipientsException.FailedRecipient;
                }
                catch (SmtpException smtpException)
                {
                    lblError.Text = "The email or password might typed wrong or " + smtpException.Message;
                }
            }
            else
            {
                lblError.Text = "There is no email to be send, credential is not created.";
            }
        }
        private void AddBinding()
        {
            //Bindings
            _kernel.Bind <IProductRepository>().To <ProductRepository>();

            EmailCredential emailCredential = GetCredentialFromConfig();

            _kernel.Bind <IOrderHandler>().To <OrderHandler>()
            .WithConstructorArgument("credential", emailCredential);
        }
Пример #4
0
        private EmailCredential GetCredentialsFromConfig()
        {
            EmailCredential credential = new EmailCredential
            {
                Host     = ConfigurationManager.AppSettings["email.credentials.host"],
                Password = ConfigurationManager.AppSettings["email.credentials.pass"],
                Port     = int.Parse(ConfigurationManager.AppSettings["email.credentials.port"]),
                UseSsl   = bool.Parse(ConfigurationManager.AppSettings["email.credentials.ssl"]),
                Username = ConfigurationManager.AppSettings["email.credentials.user"],
                Email    = ConfigurationManager.AppSettings["email.credentials.email"]
            };

            return(credential);
        }
Пример #5
0
        public static void SaveEmail(EmailAccountModel _email, out string message)
        {
            try
            {
                message = "";

                using (var db = new SLVLOnlineEntities())
                {
                    var email = db.EmailCredential.FirstOrDefault(r => r.ID != null);

                    if (email == null)
                    {
                        EmailCredential newEmail = new EmailCredential
                        {
                            ID       = Guid.NewGuid(),
                            Email    = _email.Email,
                            Password = _email.Password
                        };

                        db.Entry(newEmail).State = EntityState.Added;
                    }
                    else
                    {
                        _email.Password = _email.Password;

                        _email.Email = _email.Email;

                        db.Entry(_email).State = EntityState.Modified;
                    }

                    db.SaveChanges();
                }
            }
            catch (Exception error)
            {
                message = error.Message;
            }
        }
Пример #6
0
        private void button_Send_Click(object sender, EventArgs e)
        {
            EmailCredential emailCredential = new EmailCredential();

            emailCredential.SmtpPort   = int.Parse(textBox_ServerPort.Text);
            emailCredential.SmtpServer = textBox_Server.Text;
            emailCredential.LoginName  = textBox_UserName.Text;
            emailCredential.Password   = textBox_Password.Text;

            EmailHelperModel model = new EmailHelperModel();

            model.SenderEmail = textBox_Sender.Text;
            model.SenderName  = textBox_Sender.Text;
            model.ToList.Add(textBox_To.Text);
            model.Title   = textBox_MailTitle.Text;
            model.Content = textBox_Body.Text;
            model.AttachedFiles.Add(@"E:\Downloads\China High-speed Railway Lines Network.jpg");
            model.IsBodyHtml = true;
            model.SendCompletedCallbackEvent += new SendCompletedCallbackEventDelegate(SendCallback);
            model.CallbackData = "123456";

            EmailHelper.SendAsync(emailCredential, model);

            //using (EmailHelper emailHelper = new EmailHelper(emailCredential))
            //{
            //    emailHelper.SendAsync(model);
            //}

            //EmailHelper emailHelper = new EmailHelper(int.Parse(textBox_ServerPort.Text), textBox_Server.Text, textBox_UserName.Text, textBox_Password.Text);
            //emailHelper.Send(
            //    textBox_Sender.Text,
            //    textBox_Sender.Text,
            //    new List<string>() { textBox_To.Text },
            //    null,
            //    textBox_MailTitle.Text,
            //    new List<string>() { @"E:\Downloads\China High-speed Railway Lines Network.jpg" },
            //    textBox_Body.Text);
        }
Пример #7
0
        public void SendMail(string subject, string body, string emailTo)
        {
            SmtpClient      client     = null;
            EmailCredential credential = GetCredentialsFromConfig();

            MailMessage mailToClient = new MailMessage(credential.Email, emailTo)
            {
                Body       = body,
                Subject    = subject,
                IsBodyHtml = true
            };

            try
            {
                client = new SmtpClient(credential.Host, credential.Port)
                {
                    EnableSsl             = credential.UseSsl,
                    UseDefaultCredentials = false,
                    DeliveryMethod        = SmtpDeliveryMethod.Network
                };
                client.ServicePoint.MaxIdleTime = 1;
                client.Credentials = new NetworkCredential(credential.Username, credential.Password);

                client.Send(mailToClient);
            }
            catch (SmtpException exc)
            {
                //Add logging
            }
            finally
            {
                if (client != null)
                {
                    client.Dispose();
                }
            }
        }
        private void sendNotification(string requestlistID)
        {
            DataTable result = null;

            try
            {
                using (SqlConnection conPrintDB = new SqlConnection(ConfigurationManager.ConnectionStrings["printDBServer"].ConnectionString))
                {
                    string strSelect = "Select CustomerEmail, CustomerPhoneNo, CustomerContactMethod, CompanyName From Customer c, Request r, Requestlist rl, Company cp WHERE rl.RequestID = r.RequestID AND r.CustomerID = c.CustomerID AND r.CompanyID = cp.CompanyID AND rl.RequestlistID = @requestlistID";

                    using (SqlCommand cmdSelect = new SqlCommand(strSelect, conPrintDB))
                    {
                        cmdSelect.Parameters.AddWithValue("@requestlistID", requestlistID);

                        using (SqlDataAdapter da = new SqlDataAdapter(cmdSelect))
                        {
                            result = new DataTable();
                            da.Fill(result);
                        }

                        //return new User((string)result.Rows[0]["ID"], (string)result.Rows[0]["Name"], GetUserRoles(username, loginType), (string)result.Rows[0]["Email"]);
                        string contactNo     = (string)result.Rows[0]["CustomerPhoneNo"];
                        string email         = (string)result.Rows[0]["CustomerEmail"];
                        string contactMethod = (string)result.Rows[0]["CustomerContactMethod"];
                        string companyName   = (string)result.Rows[0]["CompanyName"];

                        switch (contactMethod)
                        {
                        case "whatsapp":
                            WhatappClass.sendWhatsappWithURL(contactNo, "Your Document is Printed and Ready", Response);
                            break;

                        case "wechat":
                        case "E-mail":
                            string     emailContent = EmailClass.populateNotificationEmail(companyName);// content of the email
                            EmailClass emailClass   = new EmailClass(email, "Document is Printed and Ready", emailContent, true);

                            if (EmailClass.isCredentialed())
                            {
                                EmailCredential credential = (EmailCredential)Session["EmailCredential"];
                                emailClass.sendEmail(credential);
                            }
                            else
                            {
                                Session["tempEmail"] = emailClass;
                                Response.Redirect(ResolveUrl("~/Staff/VerifyEmail.aspx?ReturnURL=" + Request.Url.AbsoluteUri));
                            }
                            break;

                        case "SMS":
                            break;

                        default:
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }
        }
Пример #9
0
        /// <summary>
        ///  发送邮件
        /// </summary>
        /// <param name="host">smtp地址</param>
        /// <param name="port">端口</param>
        /// <param name="username">用户名 </param>
        /// <param name="password">密码</param>
        /// <param name="mail">邮件体</param>
        /// <param name="credential">认证方式</param>
        private static void SendEmail(string host, int port, string username, string password, MailMessage mail, EmailCredential credential, int timeout)
        {
            SmtpClient smtpClient = new SmtpClient();

            smtpClient.Timeout = timeout;
            if (host != null && host.Length > 0)
            {
                smtpClient.Host = host;
            }
            smtpClient.Port = port;

            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            if (credential == EmailCredential.PassWordCredentials)
            {
                smtpClient.Credentials = new System.Net.NetworkCredential(username, password);
            }
            else
            {
                smtpClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
            }

            smtpClient.Send(mail);
        }
 /// <summary>
 /// Create or update provider credential
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='apiVersion'>
 /// </param>
 /// <param name='credential'>
 /// Credential
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <EmailCredential> CreateOrUpdateCredentialAsync(this IEmailOperations operations, string apiVersion, EmailCredential credential, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.CreateOrUpdateCredentialWithHttpMessagesAsync(apiVersion, credential, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Create or update provider credential
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='apiVersion'>
 /// </param>
 /// <param name='credential'>
 /// Credential
 /// </param>
 public static EmailCredential CreateOrUpdateCredential(this IEmailOperations operations, string apiVersion, EmailCredential credential)
 {
     return(operations.CreateOrUpdateCredentialAsync(apiVersion, credential).GetAwaiter().GetResult());
 }
Пример #12
0
 public EnviarEmail()
 {
     credential = new EmailCredential();
 }
Пример #13
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            SqlConnection conPrintDB;
            string        connStr = ConfigurationManager.ConnectionStrings["printDBServer"].ConnectionString;

            conPrintDB = new SqlConnection(connStr);
            conPrintDB.Open();
            try
            {
                string     strInsert;
                SqlCommand cmdInsert;

                strInsert = "Insert Into CompanyStaff (StaffName, StaffEmail, StaffPassword, StaffNRIC, StaffDOB, StaffPhoneNo, StaffSalt, StaffRole, CompanyID) Values (@staffName, @staffEmail,@staffPassword, @staffNRIC, @staffDOB, @staffPhoneNo, @staffSalt, @staffRole, @companayID); SELECT MAX(StaffID) from CompanyStaff where StaffName=@staffName and StaffPhoneNo=@staffPhoneNo";

                byte[] generatedSalt = ClassHashing.generateSalt();
                byte[] hashPassword  = { 0, 0 };//empty password when checkbox for password setting is not checked

                if (chkPassSet.Checked)
                {
                    hashPassword = ClassHashing.generateSaltedHash(txtPassword.Text, generatedSalt);
                }
                cmdInsert = new SqlCommand(strInsert, conPrintDB);
                cmdInsert.Parameters.AddWithValue("@staffName", txtName.Text);
                cmdInsert.Parameters.AddWithValue("@staffEmail", txtEmail.Text);
                cmdInsert.Parameters.AddWithValue("@staffPassword", hashPassword);
                cmdInsert.Parameters.AddWithValue("@staffNRIC", txtNRIC.Text);
                cmdInsert.Parameters.AddWithValue("@staffDOB", cldBOD.SelectedDate);
                cmdInsert.Parameters.AddWithValue("@staffPhoneNo", txtPhoneNo.Text);
                cmdInsert.Parameters.AddWithValue("@staffSalt", generatedSalt);
                cmdInsert.Parameters.AddWithValue("@staffRole", UserVerification.ROLE_STAFF);
                cmdInsert.Parameters.AddWithValue("@companayID", Request.Cookies["CompanyID"].Value);

                var staffID = cmdInsert.ExecuteScalar();

                if (!chkPassSet.Checked)
                {
                    string     strSelect = "SELECT CompanyName FROM Company WHERE CompanyID = @companyID";
                    SqlCommand cmdSelect = new SqlCommand(strSelect, conPrintDB);
                    cmdSelect.Parameters.AddWithValue("@companyID", Request.Cookies["CompanyID"].Value);
                    var companyName = cmdSelect.ExecuteScalar();

                    string verificationCode = UserVerification.getVerificationCode(staffID + txtNRIC.Text, generatedSalt);
                    //then it will generate a url to activate the account and send it to the staff
                    string     verificationLink = DOMAIN_NAME + Page.ResolveUrl("~/StaffAccountActivation.aspx?VC=" + HttpUtility.UrlEncode(verificationCode));
                    string     emailContent     = EmailClass.populateActivationEmail((string)companyName, verificationLink);// content of the email
                    EmailClass emailClass       = new EmailClass(txtEmail.Text, "Staff Account Activation", emailContent, true);

                    if (EmailClass.isCredentialed())
                    {
                        EmailCredential credential = (EmailCredential)Session["EmailCredential"];
                        emailClass.sendEmail(credential);
                    }
                    else
                    {
                        Session["tempEmail"] = emailClass;
                        Response.Redirect(ResolveUrl("~/Staff/VerifyEmail.aspx?ReturnURL=" + Request.Url.AbsoluteUri));
                    }
                }

                lblError.Text = "Successfully added";
            }
            catch (Exception ex)
            {
                lblError.Text = "An error occured when register staff :" + ex.ToString();
            }
            finally
            {
                conPrintDB.Close();
            }
        }
Пример #14
0
 public EnviarEmailWithCredentials()
 {
     credential = new EmailCredential();
 }