private void btFolderSend_Click(object sender, EventArgs e) { sendMail = new SendMail(); sendMail.smtpServer = tbSMTPServer.Text; sendMail.from = tbMailFrom.Text; sendMail.username = tbSMTP_username.Text; sendMail.password = tbSMTP_password.Text; sendMail.port = Convert.ToInt32(tbSMTPPort.Text); sendMail.useSSL = chUseSSL.Checked; string[] emailsfolders = Directory.GetDirectories(tbFolderName.Text).Where(f => SendMail.ValidateEmail(f)).ToArray(); AfterSendActions asa = (AfterSendActions)cbAfterSend.SelectedItem; Encoding encoding = Encoding.GetEncoding((int)((CodePages)cbEncoding.SelectedItem)); System.Net.Mail.MailPriority prior = (System.Net.Mail.MailPriority)cbPriority.SelectedItem; foreach (string folder in emailsfolders) { string mail = folder.Split(Path.DirectorySeparatorChar).Last(); sendMail.SendFolder(mail, folder, tbFolderName.Text, chSendAsArc.Checked, asa, tbCaption.Text, meBody.Text, chAsHtml.Checked, prior, encoding, chSimulateFolder.Checked, chSendAsArc.Checked); } }
public void SendFolder(string Email, string Folder, string rootFolder, bool Arc, AfterSendActions AfterFolderSend, string caption, string message, bool html, MailPriority Priority, Encoding encoding, bool simulate, bool arcFolder, bool ignoreErrors = true) { if (Folder.Last() != Path.DirectorySeparatorChar) { Folder += Path.DirectorySeparatorChar; } FilesList.Clear(); DirSearch(Folder); string arcName = ""; if (arcFolder) { arcName = Path.GetTempPath() + Email + ".zip"; ZipFile zf = new ZipFile(); foreach (string f in FilesList) { string dirInArchive = Path.GetDirectoryName(f).Replace(Folder, ""); zf.AddFile(f, "Attachments" + dirInArchive); } zf.Save(arcName); FilesList.Clear(); FilesList.Add(arcName); } Send(Email, caption, message, html, Priority, encoding, simulate, ignoreErrors, FilesList.ToArray()); if (File.Exists(arcName)) { File.Delete(arcName); } switch (AfterFolderSend) { case AfterSendActions.Move: if (!simulate) { string dir = rootFolder + "_sended" + Path.DirectorySeparatorChar + Path.DirectorySeparatorChar + Email; Directory.CreateDirectory(dir); Directory.Move(Folder, dir); } break; case AfterSendActions.Clear: if (!simulate) { Directory.Delete(Folder, true); Directory.CreateDirectory(Folder); } break; } }