public void StartSend(string mlid) { String vbCrLf = "\r\n"; String vbTab = "\t"; NewMessage msg; inline imagescid = new inline(); string[] cids; imagescid.cidinclude(ref mailbody, WebEditorUtils.WebUserFilesPath, out cids); msg = new NewMessage(fromad, subject, mailbody, NewMessage.MessageType.Html); msg.AddHeader("X-Originating-IP", Request.UserHostAddress); msg.AddHeader("X-Originating-UA", Request.UserAgent); msg.AddHeader("Received", "from " + Request.UserHostName + " [" + Request.UserHostAddress + "]" + vbCrLf + vbTab + "by " + Request.Url.Host + " [" + Request.ServerVariables["LOCAL_ADDR"] + "] (Digita.MimeParser) via HTTP;" + vbCrLf + vbTab + DateTime.UtcNow.ToString(@"ddd, dt MMM yyyy HH\:mm\:ss", new CultureInfo("en-US")) + " +0000"); msg.AddRecipient("*****@*****.**", NewMessage.RecipientTypes.To); foreach (string ss in cids) { if (ss != null) { string localfilename; localfilename = Path.Combine(WebEditorUtils.RootUserFilesPath, ss.Replace('/', Path.DirectorySeparatorChar)); msg.AddAttachment(localfilename, ss.Substring(ss.LastIndexOf("/") > 0 ? ss.LastIndexOf("/") + 1 : ss.LastIndexOf("/")), StaticFunctions.ContentTypeMatch(ss), NewMessage.Encodings.Base64, true); } } DataTable dtAttach = DatabaseConnection.CreateDataset("SELECT FILEMANAGER.ID, FILEMANAGER.FILENAME, FILEMANAGER.GUID FROM FILEMANAGER RIGHT OUTER JOIN ML_ATTACHMENT ON FILEMANAGER.ID = ML_ATTACHMENT.FILEID WHERE ML_ATTACHMENT.MLID = " + int.Parse(ViewState["mailid"].ToString())).Tables[0]; if (dtAttach.Rows.Count > 0) { string fileName; fileName = ConfigSettings.DataStoragePath + Path.DirectorySeparatorChar + dtAttach.Rows[0]["guid"].ToString() + Path.GetExtension(dtAttach.Rows[0]["filename"].ToString()); if (File.Exists(fileName)) { msg.AddAttachment(fileName, dtAttach.Rows[0]["filename"].ToString(), "application/octet-stream", NewMessage.Encodings.Base64, false); } } string templatePath = Path.Combine(Request.PhysicalApplicationPath + "template", "mailing"); string templateFilename = "tustena_signature.htm"; string templateFileNamePlain = "tustena_signature.txt"; string signature = String.Empty; string signaturePlain = String.Empty; if (File.Exists(Path.Combine(Path.Combine(templatePath, UC.CultureSpecific), templateFilename))) { templateFilename = Path.Combine(Path.Combine(templatePath, UC.CultureSpecific), templateFilename); } else { templateFilename = Path.Combine(templatePath, templateFilename); } if (File.Exists(templateFilename)) { StreamReader objReader = new StreamReader(templateFilename); signature = objReader.ReadToEnd(); objReader.Close(); } if (File.Exists(Path.Combine(Path.Combine(templatePath, UC.CultureSpecific), templateFileNamePlain))) { templateFileNamePlain = Path.Combine(Path.Combine(templatePath, UC.CultureSpecific), templateFileNamePlain); } else { templateFileNamePlain = Path.Combine(templatePath, templateFileNamePlain); } if (File.Exists(templateFileNamePlain)) { StreamReader objReader = new StreamReader(templateFileNamePlain); signaturePlain = objReader.ReadToEnd(); objReader.Close(); } DataRow myCompany; myCompany = DatabaseConnection.CreateDataset("SELECT COMPANYNAME,ADDRESS,ZIPCODE,CITY,STATE FROM TUSTENA_DATA").Tables[0].Rows[0]; signature = signature.Replace("%COMPANY%", myCompany[0].ToString()); signature = signature.Replace("%ADDRESS%", myCompany[1].ToString()); signature = signature.Replace("%CAP%", myCompany[2].ToString()); signature = signature.Replace("%COUNTRY%", myCompany[3].ToString()); signature = signature.Replace("%STATE%", myCompany[4].ToString()); signature = signature.Replace("%MLID%", mlid); signaturePlain = signaturePlain.Replace("%COMPANY%", myCompany[0].ToString()); signaturePlain = signaturePlain.Replace("%ADDRESS%", myCompany[1].ToString()); signaturePlain = signaturePlain.Replace("%CAP%", myCompany[2].ToString()); signaturePlain = signaturePlain.Replace("%COUNTRY%", myCompany[3].ToString()); signaturePlain = signaturePlain.Replace("%STATE%", myCompany[4].ToString()); signaturePlain = signaturePlain.Replace("%MLID%", mlid); msg.AddSignature(signature, signaturePlain); string message; switch (ConfigSettings.SpoolFormat) { case "xmail": message = msg.ToString(NewMessage.MessageFormats.XMailSpool); break; case "mssmtp": message = msg.ToString(NewMessage.MessageFormats.MSSMTPSpool); break; default: message = msg.ToString(NewMessage.MessageFormats.RFC822); break; } SpoolMail(message); if (CreateActivity.Checked) { CreateMailActivity(); } if (ViewState["fromwelcome"] != null && isGoBack) { GoBackClick(); } }
protected void Page_Load(object sender, EventArgs e) { string template; string templateUser; String vbCrLf = "\r\n"; String vbTab = "\t"; StreamReader objReader; objReader = new StreamReader(Request.PhysicalApplicationPath + "template" + Path.DirectorySeparatorChar + "didis.txt"); template = objReader.ReadToEnd(); objReader.Close(); DataSet myDataSet = DatabaseConnection.CreateDataset("SELECT ID,COMPANYNAME,EMAIL FROM BASE_COMPANIES WHERE (CATEGORIES LIKE '%|93|%') ORDER BY COMPANYNAME"); foreach (DataRow dr in myDataSet.Tables[0].Rows) { templateUser = template; string user = String.Empty; string password = String.Empty; user = DatabaseConnection.SqlScalar("SELECT FIELDVAL FROM ADDEDFIELDS_CROSS WHERE (IDRIF = 31) AND (ID = " + dr["id"].ToString() + ")"); password = DatabaseConnection.SqlScalar("SELECT FIELDVAL FROM ADDEDFIELDS_CROSS WHERE (IDRIF = 32) AND (ID = " + dr["id"].ToString() + ")"); templateUser = templateUser.Replace("[companyname]", dr["companyname"].ToString()); templateUser = templateUser.Replace("[user]", user); templateUser = templateUser.Replace("[password]", password); NewMessage msg; msg = new NewMessage(new EmailAddress("*****@*****.**"), "Dati Didis", templateUser, NewMessage.MessageType.Plain); msg.AddHeader("X-Originating-IP", Request.UserHostAddress); msg.AddHeader("X-Originating-UA", Request.UserAgent); msg.AddHeader("Received", "from " + Request.UserHostName + " [" + Request.UserHostAddress + "]" + vbCrLf + vbTab + "by " + Request.Url.Host + " [" + Request.ServerVariables["LOCAL_ADDR"] + "] (Digita.MimeParser) via HTTP;" + vbCrLf + vbTab + DateTime.UtcNow.ToString(@"ddd, dd MMM yyyy HH\:mm\:ss", new CultureInfo("en-US")) + " +0000"); msg.AddRecipient(dr["email"].ToString().Trim(), NewMessage.RecipientTypes.To); TextWriter MailFile = File.CreateText( Path.Combine( Request.PhysicalApplicationPath, "mailinglist" + Path.DirectorySeparatorChar + "xmail" + Path.DirectorySeparatorChar + "spool" + Path.DirectorySeparatorChar + "temp" + Path.DirectorySeparatorChar + msg.messageID)); Response.Clear(); Response.Write("processing: \"" + dr["companyname"].ToString() + "\"<br>"); Response.Flush(); try { string lineToWrite = msg.ToString(NewMessage.MessageFormats.XMailSpool); lineToWrite = lineToWrite.Replace("=?utf-7?Q??=", ""); lineToWrite = lineToWrite.Replace("=?utf-7?Q?", ""); lineToWrite = lineToWrite.Replace("?=", ""); MailFile.WriteLine(lineToWrite); MailFile.Close(); Response.Clear(); Response.Write("writing: \"" + dr["email"].ToString() + "\";\"" + dr["companyname"].ToString() + "\";\"" + user + "\";\"" + password + "\"<br>"); Response.Flush(); } catch { Response.Clear(); Response.Write("error writing: <b>" + dr["companyname"].ToString() + "</b><br>"); Response.Flush(); } } }