private bool Send_Outlook(bool actualSend = true) { try { OutLook.Application objOutLook = null; if (string.IsNullOrEmpty(MailTo)) { Event = "Failed: Please provide TO email address."; return(false); } if (string.IsNullOrEmpty(Subject)) { Event = "Failed: Please provide email subject."; return(false); } // Check whether there is an Outlook process running. if (System.Diagnostics.Process.GetProcessesByName("OUTLOOK").Count() > 0) { // If so, use the GetActiveObject method to obtain the process and cast it to an Application object. objOutLook = System.Runtime.InteropServices.Marshal.GetActiveObject("Outlook.Application") as OutLook.Application; } else { // If not, create a new instance of Outlook and log on to the default profile. objOutLook = new OutLook.Application(); OutLook.NameSpace nameSpace = objOutLook.GetNamespace("MAPI"); nameSpace.Logon("", "", System.Reflection.Missing.Value, System.Reflection.Missing.Value); nameSpace = null; } mOutlookMail = objOutLook.CreateItem(OutLook.OlItemType.olMailItem) as OutLook.MailItem; mOutlookMail.HTMLBody = this.Body; mOutlookMail.Subject = this.Subject; OutLook.AddressEntry currentUser = objOutLook.Session.CurrentUser.AddressEntry; if (currentUser.Type == "EX") { OutLook.ExchangeUser manager = currentUser.GetExchangeUser(); // Add recipient using display name, alias, or smtp address string emails = MailTo; Array arrEmails = emails.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (string email in arrEmails) { mOutlookMail.Recipients.Add(email); } //Add CC if (!String.IsNullOrEmpty(MailCC)) { Array arrCCEmails = MailCC.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (string MailCC1 in arrCCEmails) { mOutlookMail.Recipients.Add(MailCC1); } } mOutlookMail.Recipients.ResolveAll(); mOutlookMail.CC = this.MailCC; mOutlookMail.To = this.MailTo; //Add Attachment foreach (string AttachmentFileName in Attachments) { if (String.IsNullOrEmpty(AttachmentFileName) == false) { mOutlookMail.Attachments.Add(AttachmentFileName, Type.Missing, Type.Missing, Type.Missing); } } //attachment which is embeded into the email body(images). foreach (KeyValuePair <string, string> AttachmentFileName in EmbededAttachment) { if (String.IsNullOrEmpty(AttachmentFileName.Key) == false) { OutLook.Attachment attachment = mOutlookMail.Attachments.Add(AttachmentFileName.Key, OutLook.OlAttachmentType.olEmbeddeditem, null, ""); attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", AttachmentFileName.Value); } } if (actualSend) { //Send Mail mOutlookMail.Send(); } } return(true); } catch (Exception ex) { if (ex.Message.Contains("Mailbox Unavailabel")) { Event = "Failed: Please provide correct sender email address"; } else if (ex.StackTrace.Contains("System.Runtime.InteropServices.Marshal.GetActiveObject")) { Event = "Please make sure ginger/outlook opened in same security context (Run as administrator or normal user)"; } else if (ex.StackTrace.Contains("System.Security.Authentication.AuthenticationException") || ex.StackTrace.Contains("System.Net.Sockets.SocketException")) { Event = "Please check SSL configuration"; } else { Event = "Failed: " + ex.Message; } return(false); } }
public bool Send_SMTP() { try { if (string.IsNullOrEmpty(MailFrom)) { Event = "Failed: Please provide FROM email address."; return(false); } if (string.IsNullOrEmpty(MailTo)) { Event = "Failed: Please provide TO email address."; return(false); } if (string.IsNullOrEmpty(Subject)) { Event = "Failed: Please provide email subject."; return(false); } if (string.IsNullOrEmpty(SMTPMailHost)) { Event = "Failed: Please provide Mail Host"; return(false); } mVE.Value = MailFrom; var fromAddress = new MailAddress(mVE.ValueCalculated, "_Amdocs Ginger Automation"); mVE.Value = SMTPMailHost; string mailHost = mVE.ValueCalculated; if (this.SMTPPort == 0 || this.SMTPPort == null) { this.SMTPPort = 25; } var smtp = new SmtpClient() { Host = mailHost, // amdocs config Port = (int)this.SMTPPort, EnableSsl = EnableSSL, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = !ConfigureCredential }; if (ConfigureCredential) { bool checkValueDecrypt; checkValueDecrypt = true; string DecryptPass = EncryptionHandler.DecryptString(SMTPPass, ref checkValueDecrypt); if (checkValueDecrypt) { smtp.Credentials = new NetworkCredential(SMTPUser, DecryptPass); } else { smtp.Credentials = new NetworkCredential(SMTPUser, SMTPPass); } } mVE.Value = MailTo; string emails = mVE.ValueCalculated; Array arrEmails = emails.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); System.Net.Mail.MailMessage myMail = new System.Net.Mail.MailMessage(); foreach (string email in arrEmails) { myMail.To.Add(email); } //Add CC if (!String.IsNullOrEmpty(MailCC)) { Array arrCCEmails = MailCC.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (string MailCC1 in arrCCEmails) { myMail.CC.Add(MailCC1); } } mVE.Value = Subject; string subject = mVE.ValueCalculated; mVE.Value = Body; string body = mVE.ValueCalculated; myMail.From = fromAddress; myMail.IsBodyHtml = IsBodyHTML; myMail.Subject = subject.Replace('\r', ' ').Replace('\n', ' '); myMail.Body = body; foreach (string AttachmentFileName in Attachments) { if (String.IsNullOrEmpty(AttachmentFileName) == false) { Attachment a = new Attachment(AttachmentFileName); myMail.Attachments.Add(a); } } if (alternateView != null) { myMail.AlternateViews.Add(alternateView); } smtp.Send(myMail); return(true); } catch (Exception ex) { if (ex.Message.Contains("Mailbox unavailable")) { Event = "Failed: Please provide correct FROM email address"; } else if (ex.StackTrace.Contains("System.Runtime.InteropServices.Marshal.GetActiveObject")) { Event = "Please make sure ginger/outlook opened in same security context (Run as administrator or normal user)"; } else if (ex.StackTrace.Contains("System.Security.Authentication.AuthenticationException") || ex.StackTrace.Contains("System.Net.Sockets.SocketException")) { Event = "Please check SSL configuration"; } else { Event = "Failed: " + ex.Message; } Reporter.ToLog(eLogLevel.ERROR, "Failed to send mail", ex); return(false); } }
public bool Send_SMTP() { try { if (string.IsNullOrEmpty(MailFrom)) { Event = "Failed: Please provide FROM email address."; return(false); } if (string.IsNullOrEmpty(MailTo)) { Event = "Failed: Please provide TO email address."; return(false); } if (string.IsNullOrEmpty(Subject)) { Event = "Failed: Please provide email subject."; return(false); } if (string.IsNullOrEmpty(SMTPMailHost)) { Event = "Failed: Please provide Mail Host"; return(false); } var fromAddress = new MailAddress(MailFrom, "_Amdocs Ginger Automation"); if (this.SMTPPort == 0 || this.SMTPPort == null) { this.SMTPPort = 25; } var smtp = new SmtpClient() { Host = SMTPMailHost, // amdocs config Port = (int)this.SMTPPort, EnableSsl = EnableSSL, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = true }; string emails = MailTo; Array arrEmails = emails.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); System.Net.Mail.MailMessage myMail = new System.Net.Mail.MailMessage(); foreach (string email in arrEmails) { myMail.To.Add(email); } //Add CC if (!String.IsNullOrEmpty(MailCC)) { Array arrCCEmails = MailCC.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (string MailCC1 in arrCCEmails) //arrEmails) // Updated by Preeti for defect 2464 { myMail.CC.Add(MailCC1); } } myMail.From = fromAddress; myMail.IsBodyHtml = true; myMail.Subject = this.Subject.Replace('\r', ' ').Replace('\n', ' '); myMail.Body = this.Body; foreach (string AttachmentFileName in Attachments) { if (String.IsNullOrEmpty(AttachmentFileName) == false) { Attachment a = new Attachment(AttachmentFileName); myMail.Attachments.Add(a); } } if (alternateView != null) { myMail.AlternateViews.Add(alternateView); } smtp.Send(myMail); return(true); } catch (Exception ex) { if (ex.Message.Contains("Mailbox unavailable")) { Event = "Failed: Please provide correct FROM email address"; } else if (ex.StackTrace.Contains("System.Runtime.InteropServices.Marshal.GetActiveObject")) { Event = "Please make sure ginger/outlook opened in same security context (Run as administrator or normal user)"; } else if (ex.StackTrace.Contains("System.Security.Authentication.AuthenticationException") || ex.StackTrace.Contains("System.Net.Sockets.SocketException")) { Event = "Please check SSL configuration"; } else { Event = "Failed: " + ex.Message; } return(false); } }