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")); }
/// <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); } }