/*/// <summary> * /// Process the Text template. * /// </summary> * private void ProcessTextTemplate(string content) * { * ActiveUp.Net.Mail.Logger.AddEntry("Processing the TEXT template.", 1); * * // Initialize strings to be used later * string line = string.Empty, lineUpper = string.Empty; * * // Initialize the StringReader to read line per line * StringReader reader = new StringReader(content); * * // Initialize the actual body count * int bodyCount = _bodies.Count, lineNumber = 0; * * // Read and parse each line. Append the data in the properties. * while (reader.Peek() > -1) * { * ActiveUp.Net.Mail.Logger.AddEntry("Line parsed. Body count: + " + bodyCount.ToString() + ".", 0); * * line = reader.ReadLine(); * lineNumber++; * lineUpper = line.ToUpper(); * * // If a property, then set value * if (lineUpper.StartsWith("TO:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("TO property found: + " + line + " (raw).", 0); * this.Message.To.Add(Parser.ParseAddress(ExtractValue(line))); * } * else if (lineUpper.StartsWith("BCC:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("BCC property found: + " + line + " (raw).", 0); * this.Message.Bcc.Add(Parser.ParseAddress(ExtractValue(line))); * } * else if (lineUpper.StartsWith("CC:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("CC property found: + " + line + " (raw).", 0); * this.Message.Cc.Add(Parser.ParseAddress(ExtractValue(line))); * } * else if (lineUpper.StartsWith("FROM:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("FROM property found: + " + line + " (raw).", 0); * this.Message.From = Parser.ParseAddress(ExtractValue(line)); * } * else if (lineUpper.StartsWith("SUBJECT:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("SUBJECT property found: + " + line + " (raw).", 0); * this.Message.Subject += ExtractValue(line); * } * else if (lineUpper.StartsWith("SMTPSERVER:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("SMTPSERVER property found: + " + line + " (raw).", 0); * this.SmtpServers.Add(ExtractValue(line), 25); * } * else if (lineUpper.StartsWith("BODYTEXT:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("BODYTEXT property found: + " + line + " (raw).", 0); * this.Bodies.Add(ExtractValue(line), BodyFormat.Text); * bodyCount++; * } * else if (lineUpper.StartsWith("BODYHTML:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("BODYHTML property found: + " + line + " (raw).", 0); * this.Bodies.Add(ExtractValue(line), BodyFormat.Html); * bodyCount++; * } * else if (lineUpper.StartsWith("FIELDFORMAT:") && lineUpper.IndexOf("=") > -1) * { * ActiveUp.Net.Mail.Logger.AddEntry("FIELDFORMAT property found: + " + line + " (raw).", 0); * this.FieldsFormats.Add(ExtractFormat(line)); * } * else if (lineUpper.StartsWith("//")) * { * ActiveUp.Net.Mail.Logger.AddEntry("COMMENT line found: + " + line + " (raw).", 0); * // Line is a comment, so do nothing * } * // If not a property, then it's a message line * else * { * ActiveUp.Net.Mail.Logger.AddEntry("BODY line found: + " + line + " (raw).", 0); * this.Bodies[bodyCount-1].Content += line + "\r\n"; * } * } * }*/ /*/// <summary> * /// Extract the format options from a text template line. * /// </summary> * /// <param name="line">The text template line.</param> * /// <returns>A FieldFormat object with the options.</returns> * private FieldFormat ExtractFormat(string line) * { * ActiveUp.Net.Mail.Logger.AddEntry("Extracting FieldFormat from line: + " + line + " (raw).", 0); * * FieldFormat fieldFormat = new FieldFormat(); * string property, val; * * foreach(string format in ExtractValue(line).Split(';')) * { * string[] lineSplit = format.Split('='); * * if (lineSplit.Length > 1) * { * property = lineSplit[0]; * val = lineSplit[1]; * * switch (property.ToUpper()) * { * case "NAME": fieldFormat.Name = val; break; * case "FORMAT": fieldFormat.Format = val; break; * case "PADDINGDIR": * if (val.ToUpper() == "LEFT") * fieldFormat.PaddingDir = PaddingDirection.Left; * else * fieldFormat.PaddingDir = PaddingDirection.Right; * break; * case "TOTALWIDTH": * try * { * fieldFormat.TotalWidth = Convert.ToInt16(val); * } * catch * { * throw new Exception("Specified Total Width is not a valid number."); * } * break; * case "PADDINGCHAR": fieldFormat.PaddingChar = Convert.ToChar(val.Substring(0, 1)); break; * } * * }// End if line split length > 1 * } * * return fieldFormat; * }*/ /// <summary> /// Process the Xml template. /// </summary> private void ProcessXmlTemplate(string content) { ActiveUp.Net.Mail.Logger.AddEntry("Processing the XML template.", 1); StringReader stringReader = new StringReader(content); XmlTextReader reader = new XmlTextReader(stringReader); string element = string.Empty; while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: element = reader.Name; ActiveUp.Net.Mail.Logger.AddEntry("New element found: " + element + ".", 0); switch (element.ToUpper()) { case "MESSAGE": { if (reader.GetAttribute("PRIORITY") != null && reader.GetAttribute("PRIORITY") != string.Empty) { this.Message.Priority = (MessagePriority)Enum.Parse(typeof(MessagePriority), reader.GetAttribute("PRIORITY"), true); } else if (reader.GetAttribute("priority") != null && reader.GetAttribute("priority") != string.Empty) { this.Message.Priority = (MessagePriority)Enum.Parse(typeof(MessagePriority), reader.GetAttribute("priority"), true); } } break; case "FIELDFORMAT": if (reader.HasAttributes) { ActiveUp.Net.Mail.Logger.AddEntry("Element has attributes.", 0); FieldFormat fieldFormat = new FieldFormat(); if (reader.GetAttribute("NAME") != null && reader.GetAttribute("NAME") != string.Empty) { fieldFormat.Name = reader.GetAttribute("NAME"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute NAME: " + fieldFormat.Name, 0); } else if (reader.GetAttribute("name") != null && reader.GetAttribute("name") != string.Empty) { fieldFormat.Name = reader.GetAttribute("name"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute name: " + fieldFormat.Name, 0); } if (reader.GetAttribute("FORMAT") != null && reader.GetAttribute("FORMAT") != string.Empty) { fieldFormat.Format = reader.GetAttribute("FORMAT"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute FORMAT: " + fieldFormat.Format, 0); } else if (reader.GetAttribute("format") != null && reader.GetAttribute("format") != string.Empty) { fieldFormat.Format = reader.GetAttribute("format"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute format: " + fieldFormat.Format, 0); } if (reader.GetAttribute("PADDINGDIR") != null && reader.GetAttribute("PADDINGDIR") != string.Empty) { if (reader.GetAttribute("PADDINGDIR").ToUpper() == "LEFT") { fieldFormat.PaddingDir = PaddingDirection.Left; } else { fieldFormat.PaddingDir = PaddingDirection.Right; } ActiveUp.Net.Mail.Logger.AddEntry("Attribute PADDINGDIR: " + reader.GetAttribute("PADDINGDIR"), 0); } else if (reader.GetAttribute("paddingdir") != null && reader.GetAttribute("paddingdir") != string.Empty) { if (reader.GetAttribute("paddingdir").ToUpper() == "left") { fieldFormat.PaddingDir = PaddingDirection.Left; } else { fieldFormat.PaddingDir = PaddingDirection.Right; } ActiveUp.Net.Mail.Logger.AddEntry("Attribute paddingdir: " + reader.GetAttribute("paddingdir"), 0); } if (reader.GetAttribute("TOTALWIDTH") != null && reader.GetAttribute("TOTALWIDTH") != string.Empty) { try { fieldFormat.TotalWidth = Convert.ToInt16(reader.GetAttribute("TOTALWIDTH")); } catch { throw new Exception("Specified Total Width is not a valid number."); } ActiveUp.Net.Mail.Logger.AddEntry("Attribute TOTALWIDTH: " + fieldFormat.TotalWidth.ToString(), 0); } else if (reader.GetAttribute("totalwidth") != null && reader.GetAttribute("totalwidth") != string.Empty) { try { fieldFormat.TotalWidth = Convert.ToInt16(reader.GetAttribute("totalwidth")); } catch { throw new Exception("Specified Total Width is not a valid number."); } ActiveUp.Net.Mail.Logger.AddEntry("Attribute totalwidth: " + fieldFormat.TotalWidth.ToString(), 0); } if (reader.GetAttribute("PADDINGCHAR") != null && reader.GetAttribute("PADDINGCHAR") != string.Empty) { fieldFormat.PaddingChar = Convert.ToChar(reader.GetAttribute("PADDINGCHAR").Substring(0, 1)); ActiveUp.Net.Mail.Logger.AddEntry("Attribute PADDINGCHAR: '" + fieldFormat.PaddingChar + "'", 0); } else if (reader.GetAttribute("paddingchar") != null && reader.GetAttribute("paddingchar") != string.Empty) { fieldFormat.PaddingChar = Convert.ToChar(reader.GetAttribute("paddingchar").Substring(0, 1)); ActiveUp.Net.Mail.Logger.AddEntry("Attribute paddingchar: '" + fieldFormat.PaddingChar + "'", 0); } this.FieldsFormats.Add(fieldFormat); } break; case "FROM": case "TO": case "CC": case "BCC": if (reader.HasAttributes) { ActiveUp.Net.Mail.Address address = new ActiveUp.Net.Mail.Address(); if (reader.GetAttribute("NAME") != null && reader.GetAttribute("NAME") != string.Empty) { address.Name = reader.GetAttribute("NAME"); } else if (reader.GetAttribute("name") != null && reader.GetAttribute("name") != string.Empty) { address.Name = reader.GetAttribute("name"); } if (reader.GetAttribute("EMAIL") != null && reader.GetAttribute("EMAIL") != string.Empty) { address.Email = reader.GetAttribute("EMAIL"); } else if (reader.GetAttribute("email") != null && reader.GetAttribute("email") != string.Empty) { address.Email = reader.GetAttribute("email"); } if (element.ToUpper() == "FROM") { if (reader.GetAttribute("REPLYNAME") != null && reader.GetAttribute("REPLYNAME") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Name = reader.GetAttribute("REPLYNAME"); } else if (reader.GetAttribute("replyname") != null && reader.GetAttribute("replyname") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Name = reader.GetAttribute("replyname"); } if (reader.GetAttribute("REPLYEMAIL") != null && reader.GetAttribute("REPLYEMAIL") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Email = reader.GetAttribute("REPLYEMAIL"); } else if (reader.GetAttribute("replyemail") != null && reader.GetAttribute("replyemail") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Email = reader.GetAttribute("replyemail"); } if (reader.GetAttribute("RECEIPTEMAIL") != null && reader.GetAttribute("RECEIPTEMAIL") != string.Empty) { this.Message.ReturnReceipt.Email = reader.GetAttribute("RECEIPTEMAIL"); } else if (reader.GetAttribute("receiptemail") != null && reader.GetAttribute("receiptemail") != string.Empty) { this.Message.ReturnReceipt.Email = reader.GetAttribute("receiptemail"); } } switch (reader.Name.ToUpper()) { case "FROM": /*this.Message.From.Add(address);*/ this.Message.From = address; break; case "TO": this.Message.To.Add(address); break; case "CC": this.Message.Cc.Add(address); break; case "BCC": this.Message.Bcc.Add(address); break; } } break; case "LISTTEMPLATE": { ListTemplate template = new ListTemplate(); string RegionID = string.Empty; string NullText = string.Empty; if (reader.GetAttribute("REGIONID") != null && reader.GetAttribute("REGIONID") != string.Empty) { RegionID = reader.GetAttribute("REGIONID"); } else if (reader.GetAttribute("regionid") != null && reader.GetAttribute("regionid") != string.Empty) { RegionID = reader.GetAttribute("regionid"); } if (reader.GetAttribute("NULLTEXT") != null && reader.GetAttribute("NULLTEXT") != string.Empty) { NullText = reader.GetAttribute("NULLTEXT"); } else if (reader.GetAttribute("nulltext") != null && reader.GetAttribute("nulltext") != string.Empty) { NullText = reader.GetAttribute("nulltext"); } if (reader.HasAttributes && reader.GetAttribute("NAME") != null && reader.GetAttribute("NAME") != string.Empty) { template = new ListTemplate(reader.GetAttribute("NAME"), reader.ReadString()); } else if (reader.HasAttributes && reader.GetAttribute("name") != null && reader.GetAttribute("name") != string.Empty) { template = new ListTemplate(reader.GetAttribute("name"), reader.ReadString()); } template.RegionID = RegionID; template.NullText = NullText; this.ListTemplates.Add(template); } break; case "SMTPSERVER": { Server server = new Server(); if (reader.GetAttribute("SERVER") != null && reader.GetAttribute("SERVER") != string.Empty) { server.Host = reader.GetAttribute("SERVER"); } else if (reader.GetAttribute("server") != null && reader.GetAttribute("server") != string.Empty) { server.Host = reader.GetAttribute("server"); } if (reader.GetAttribute("PORT") != null && reader.GetAttribute("PORT") != string.Empty) { server.Port = int.Parse(reader.GetAttribute("PORT")); } else if (reader.GetAttribute("port") != null && reader.GetAttribute("port") != string.Empty) { server.Port = int.Parse(reader.GetAttribute("port")); } if (reader.GetAttribute("USERNAME") != null && reader.GetAttribute("USERNAME") != string.Empty) { server.Username = reader.GetAttribute("USERNAME"); } else if (reader.GetAttribute("username") != null && reader.GetAttribute("username") != string.Empty) { server.Username = reader.GetAttribute("username"); } if (reader.GetAttribute("PASSWORD") != null && reader.GetAttribute("PASSWORD") != string.Empty) { server.Password = reader.GetAttribute("PASSWORD"); } else if (reader.GetAttribute("password") != null && reader.GetAttribute("password") != string.Empty) { server.Password = reader.GetAttribute("password"); } SmtpServers.Add(server); } break; case "CONDITION": { Condition condition = new Condition(); if (reader.GetAttribute("REGIONID") != null && reader.GetAttribute("REGIONID") != string.Empty) { condition.RegionID = reader.GetAttribute("REGIONID"); } else if (reader.GetAttribute("regionid") != null && reader.GetAttribute("regionid") != string.Empty) { condition.RegionID = reader.GetAttribute("regionid"); } if (reader.GetAttribute("OPERATOR") != null && reader.GetAttribute("OPERATOR") != string.Empty) { condition.Operator = (OperatorType)Enum.Parse(typeof(OperatorType), reader.GetAttribute("OPERATOR"), true); } else if (reader.GetAttribute("operator") != null && reader.GetAttribute("operator") != string.Empty) { condition.Operator = (OperatorType)Enum.Parse(typeof(OperatorType), reader.GetAttribute("operator"), true); } if (reader.GetAttribute("NULLTEXT") != null && reader.GetAttribute("NULLTEXT") != string.Empty) { condition.NullText = reader.GetAttribute("NULLTEXT"); } else if (reader.GetAttribute("nulltext") != null && reader.GetAttribute("nulltext") != string.Empty) { condition.NullText = reader.GetAttribute("nulltext"); } if (reader.GetAttribute("FIELD") != null && reader.GetAttribute("FIELD") != string.Empty) { condition.Field = reader.GetAttribute("FIELD"); } else if (reader.GetAttribute("field") != null && reader.GetAttribute("field") != string.Empty) { condition.Field = reader.GetAttribute("field"); } if (reader.GetAttribute("VALUE") != null && reader.GetAttribute("VALUE") != string.Empty) { condition.Value = reader.GetAttribute("VALUE"); } else if (reader.GetAttribute("value") != null && reader.GetAttribute("value") != string.Empty) { condition.Value = reader.GetAttribute("value"); } if (reader.GetAttribute("CASESENSITIVE") != null && reader.GetAttribute("CASESENSITIVE") != string.Empty) { condition.CaseSensitive = bool.Parse(reader.GetAttribute("CASESENSITIVE")); } else if (reader.GetAttribute("casesensitive") != null && reader.GetAttribute("casesensitive") != string.Empty) { condition.CaseSensitive = bool.Parse(reader.GetAttribute("casesensitive")); } Conditions.Add(condition); } break; case "REGION": { Region region = new Region(); if (reader.GetAttribute("REGIONID") != null && reader.GetAttribute("REGIONID") != string.Empty) { region.RegionID = reader.GetAttribute("REGIONID"); } else if (reader.GetAttribute("regionid") != null && reader.GetAttribute("regionid") != string.Empty) { region.RegionID = reader.GetAttribute("regionid"); } if (reader.GetAttribute("NULLTEXT") != null && reader.GetAttribute("NULLTEXT") != string.Empty) { region.NullText = reader.GetAttribute("NULLTEXT"); } else if (reader.GetAttribute("nulltext") != null && reader.GetAttribute("nulltext") != string.Empty) { region.NullText = reader.GetAttribute("nulltext"); } if (reader.GetAttribute("URL") != null && reader.GetAttribute("URL") != string.Empty) { region.URL = reader.GetAttribute("URL"); } else if (reader.GetAttribute("url") != null && reader.GetAttribute("url") != string.Empty) { region.URL = reader.GetAttribute("url"); } Regions.Add(region); } break; } break; case XmlNodeType.Text: switch (element.ToUpper()) { case "SUBJECT": this.Message.Subject += reader.Value; break; /*case "SMTPSERVER": * this.SmtpServers.Add(reader.Value, 25); * break;*/ case "BODYHTML": //this.Bodies.Add(reader.Value, BodyFormat.Html); this.Message.BodyHtml.Text += reader.Value; break; case "BODYTEXT": //this.Bodies.Add(reader.Value, BodyFormat.Text); this.Message.BodyText.Text += reader.Value; break; } break; case XmlNodeType.EndElement: element = string.Empty; break; } } }
public static void sendEmailByExternalServer(List <string> emailsTo, string subject, string body, SmtpServers server) { MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpServerConfig(server); mail.From = new MailAddress("*****@*****.**", "خبرنامه تازه یاب"); mail.Body = body; mail.Subject = subject; mail.IsBodyHtml = true; foreach (var email in emailsTo) { if (ValidEmail(email)) { mail.Bcc.Add(email); } } try { SmtpServer.Send(mail); GeneralLogs.WriteLogInDB(">OK sended Email to " + emailsTo.Count); } catch (Exception ex) { GeneralLogs.WriteLogInDB(">Error sending email to " + emailsTo.Count + ex.Message); } }