public async Task <ActionResult> Send_Email(SendBulkEmail bulkEmail)
        {
            if (ModelState.IsValid)
            {
                List <string> toEmailList = bulkEmail.ToEmails.Split(',').ToList();
                var           content     = new MailMessage();
                content.From = new MailAddress(bulkEmail.FromEmail);
                for (int i = 0; i < toEmailList.Count(); i++)
                {
                    content.To.Add(new MailAddress(toEmailList.ElementAt <String>(i)));
                }
                if (bulkEmail.Upload != null && bulkEmail.Upload.ContentLength > 0)
                {
                    content.Attachments.Add(new Attachment(bulkEmail.Upload.InputStream, System.IO.Path.GetFileName(bulkEmail.Upload.FileName)));
                }

                content.Body = bulkEmail.Content;

                using (var smtp = new SmtpClient())
                {
                    smtp.Host      = "smtp.monash.edu.au";
                    ViewBag.Result = "Email has been send.";
                    await smtp.SendMailAsync(content);
                }
            }
            return(View("Index"));
        }
Пример #2
0
        /// <summary>
        /// cmdSend_Click runs when the cmdSend Button is clicked
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        ///     [cnurse]	9/10/2004	Updated to reflect design changes for Help, 508 support
        ///                       and localisation
        /// </history>
        protected void cmdSend_Click(Object sender, EventArgs e)
        {
            try
            {
                ArrayList      objRecipients = new ArrayList();
                RoleController objRoles      = new RoleController();
                ListItem       objListItem;

                // load all user emails based on roles selected
                foreach (ListItem objRole in chkRoles.Items)
                {
                    if (objRole.Selected)
                    {
                        foreach (UserInfo objUser in objRoles.GetUsersByRoleName(PortalId, objRole.Value))
                        {
                            if (objUser.Membership.Approved)
                            {
                                objListItem = new ListItem(objUser.Email, objUser.DisplayName);
                                if (!objRecipients.Contains(objListItem))
                                {
                                    objRecipients.Add(objListItem);
                                }
                            }
                        }
                    }
                }

                // load emails specified in email distribution list
                if (!String.IsNullOrEmpty(txtEmail.Text))
                {
                    string[] splitter = { ";" };
                    Array    arrEmail = txtEmail.Text.Split(splitter, StringSplitOptions.None);
                    foreach (string strEmail in arrEmail)
                    {
                        objListItem = new ListItem(strEmail, strEmail);
                        if (!objRecipients.Contains(objListItem))
                        {
                            objRecipients.Add(objListItem);
                        }
                    }
                }

                // create object
                SendBulkEmail objSendBulkEMail = new SendBulkEmail(objRecipients, cboPriority.SelectedItem.Value, teMessage.Mode, PortalSettings.PortalAlias.HTTPAlias);
                objSendBulkEMail.Subject = txtSubject.Text;
                objSendBulkEMail.Body   += teMessage.Text;
                if (ctlAttachment.Url.StartsWith("FileID="))
                {
                    int            fileId            = int.Parse(ctlAttachment.Url.Substring(7));
                    FileController objFileController = new FileController();
                    FileInfo       objFileInfo       = objFileController.GetFileById(fileId, PortalId);

                    objSendBulkEMail.Attachment = PortalSettings.HomeDirectoryMapPath + objFileInfo.Folder + objFileInfo.FileName;
                }
                objSendBulkEMail.SendMethod         = cboSendMethod.SelectedItem.Value;
                objSendBulkEMail.SMTPServer         = Convert.ToString(PortalSettings.HostSettings["SMTPServer"]);
                objSendBulkEMail.SMTPAuthentication = Convert.ToString(PortalSettings.HostSettings["SMTPAuthentication"]);
                objSendBulkEMail.SMTPUsername       = Convert.ToString(PortalSettings.HostSettings["SMTPUsername"]);
                objSendBulkEMail.SMTPPassword       = Convert.ToString(PortalSettings.HostSettings["SMTPPassword"]);
                objSendBulkEMail.Administrator      = txtFrom.Text;
                objSendBulkEMail.Heading            = Localization.GetString("Heading", this.LocalResourceFile);

                // send mail
                if (optSendAction.SelectedItem.Value == "S")
                {
                    objSendBulkEMail.Send();
                }
                else // ansynchronous uses threading
                {
                    Thread objThread = new Thread(new ThreadStart(objSendBulkEMail.Send));
                    objThread.Start();
                }

                // completed
                UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("MessageSent", this.LocalResourceFile), ModuleMessageType.GreenSuccess);
            }
            catch (Exception exc)  //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }