Пример #1
0
 private void button2_Click(object sender, EventArgs e)
 {
     try
     {
         MailAddress m = new MailAddress(tbxMeineMail.Text);
         tbxMeineMail.BackColor = System.Drawing.Color.White;
         Nachricht MailToTheEditor = new Nachricht();
         MailToTheEditor.versenden(Properties.Settings.Default.absender, "", "", "Eine Nachricht von Coelina!", tbxMailToTheEditor.Text + "\n\n" + tbxMeineMail.Text , "", "", "", "");
         MessageBox.Show("Danke für Ihre Nachricht.");
     }
     catch
     {
         tbxMeineMail.BackColor = System.Drawing.Color.LightPink;
         MessageBox.Show("Geben Sie IHRE E-Mail-Adresse an.");
     }
 }
        private void button1_Click(object sender, EventArgs e)
        {
            string meldung = "";

            if (tbxSmtpServer.Text == "" || System.Text.RegularExpressions.Regex.IsMatch(tbxSmtpServer.Text, @"\w+([-+.']\w+)*\.\w+([-.]\w+)*\.\w+([-.]\w+)*") == false)
            {
                tbxSmtpServer.BackColor = System.Drawing.Color.LightPink;
                Properties.Settings.Default.smtpServer = tbxSmtpServer.Text;
                Properties.Settings.Default.Save();
                meldung = meldung + "\nSMTP-Server nicht korrekt.";
            }
            else
            {
                tbxSmtpServer.BackColor = System.Drawing.Color.White;
                Properties.Settings.Default.smtpServer = tbxSmtpServer.Text;
                Properties.Settings.Default.Save();
            }

            if (System.Text.RegularExpressions.Regex.IsMatch(tbxSmtpPort.Text, @"[0-9]") == true)
            {
                tbxSmtpPort.BackColor = System.Drawing.Color.White;
                Properties.Settings.Default.smtpPort = Convert.ToInt32(tbxSmtpPort.Text);
            }
            else
            {
                tbxSmtpPort.BackColor = System.Drawing.Color.LightPink;
                meldung = meldung + "\nSMTP-Port nicht korrekt.";
            }

            if (tbxAbsender.Text == "" || tbxAbsender.Text.Contains('@') == false )
            {
                tbxAbsender.BackColor = System.Drawing.Color.LightPink;
                Properties.Settings.Default.absender = tbxAbsender.Text;
                meldung = meldung + "\nAbsender-E-Mail nicht korrekt.";
            }
            else
            {
                tbxAbsender.BackColor = System.Drawing.Color.White;
                Properties.Settings.Default.absender = tbxAbsender.Text;
            }

            if (tbxPasswort.Text == "")
            {
                tbxPasswort.BackColor = System.Drawing.Color.LightPink;
                meldung = meldung + "\nLeeres Passwort nicht zugelassen.";
                Properties.Settings.Default.mailPassword = tbxPasswort.Text;
            }
            else
            {
                tbxPasswort.BackColor = System.Drawing.Color.White;
                Properties.Settings.Default.mailPassword = tbxPasswort.Text;
            }

            Properties.Settings.Default.SSLEinschalten = checkBoxSslEinschalten.Checked;

            if (meldung == "")
            {
                Properties.Settings.Default.MaileinstellungenKorrekt = true;

                MessageBox.Show("SMTP-Server: " + Properties.Settings.Default.smtpServer + "\nSMTP-Port: " +
                Properties.Settings.Default.smtpPort + "\nAbsender-Adresse: " +
                Properties.Settings.Default.absender + "\nAbsender-Passwort: " +
                Properties.Settings.Default.mailPassword, "Coelina");

                try
                {
                    Nachricht testmail;
                    testmail = new Nachricht();
                    MailAddress m = new MailAddress("*****@*****.**");
                    MessageBox.Show(testmail.testmailSenden("*****@*****.**"), "Coelina");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Fehler: \n\nProbleme bei den Einstellungen. \nStimmen die E-Mail-Einstellungen?\n\nIst die Firewall richtig konfiguriert?\n\n " + ex, "Coelina");
                    Properties.Settings.Default.mailPassword = "";
                    Properties.Settings.Default.Save();
                    tbxPasswort.Text = "";
                }
            }
            else
            {
                MessageBox.Show(meldung, "Coelina");
                Properties.Settings.Default.MaileinstellungenKorrekt = false;
            }

            Properties.Settings.Default.Save();
        }
Пример #3
0
        private void senden()
        {
            string fusszeile;

            if (Properties.Settings.Default.mailsAlsHtmlSenden == true)
            {
                fusszeile = "<br><br><br><br><br><br><br><br><br><br>Versand dieser Nachricht mit dem <a href=\"http://www.coelina.de\">Coelina-Serienbrief-Mailer</<a>.";
            }
            else
            {
                fusszeile = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nVersand dieser Nachricht mit dem Coelina-Serienbrief-Mailer, www.coelina.de";
            }

            // Zähler für die Listview

            int z = 0;

            // Wenn die Logdatei noch nicht existiert, wird sie erstellt.

            if (!File.Exists(Properties.Settings.Default.LogDatei))
            {
                string eigeneDateien = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                //string coelinaLog = eigeneDateien + "\\coelina.log";
                string coelinaLog = eigeneDateien + "\\"+ Properties.Settings.Default.LogdateiName+"."+Properties.Settings.Default.LogdateiDateiendung;
                File.CreateText(coelinaLog);
                Properties.Settings.Default.LogDatei = coelinaLog;
                Properties.Settings.Default.Save();
            }

            //int n = frmSerienbriefdateiWählen.NeuePdfDatei.AnzahlSeiten;

            int n = Global.fNeueNachricht.Count();

            // Progressbar einstellen

            progressBar1.Visible = true;
            progressBar1.Minimum = 1;
            progressBar1.Maximum = n+1;
            progressBar1.Value = 1;
            progressBar1.Step = 1;
            progressBar1.PerformStep();

            for (int i = 0; i < n; i++)
            {
                //  Falls keine Empfänger-Adresse ausgelesen werden konnte, findet auch kein Versand statt.

                if (Global.fNeueNachricht[i].Empfänger.Length > 1 && Global.fNeueNachricht[i].Empfänger != "Diese Nachricht wurde von Ihnen gelöscht.")
                {
                    System.Threading.Thread.Sleep(5000);

                    string empfaenger = Global.fNeueNachricht[i].Empfänger;
                    cc = Global.fNeueNachricht[i].cc;
                    bcc = Global.fNeueNachricht[i].Bcc;
                    betreff = Global.fNeueNachricht[i].Betreff;
                    body = Global.fNeueNachricht[i].Body;

                    // Der Zeilenumbruch \n wird nach HTML konvertiert.
                    body = body.Replace("\n", "<br>");

                    dateianhang = Global.fNeueNachricht[i].Dateianhang;
                    optinalerAnhang1 = Global.fNeueNachricht[i].OptionalerAnhang1;
                    optinalerAnhang2 = Global.fNeueNachricht[i].OptionalerAnhang2;
                    optinalerAnhang3 = Global.fNeueNachricht[i].OptionalerAnhang3;
                    smtpServer = Global.fNeueNachricht[i].Smtp;
                    smtpPort = Global.fNeueNachricht[i].Port;
                    absender = Global.fNeueNachricht[i].User;
                    passwort = Global.fNeueNachricht[i].Password;
                    kürzel = Global.fNeueNachricht[i].AliasKürzel;

                    // Jetzt findet der Versand statt.
                    // MessageBox.Show("Empfänger:" + empfaenger +".\ncc:"+cc+".\nbcc:"+bcc+".");
                    Global.fNeueNachricht[i].versenden(empfaenger, cc, bcc, betreff, body + fusszeile, dateianhang, optinalerAnhang1, optinalerAnhang2, optinalerAnhang3);

                    // Ein neues Log-Objekt wird angeleget.

                    Global.fLogs.Add(new Log(empfaenger, dateianhang, DateTime.Now.ToLongTimeString(), kürzel));

                    // Eintrag in die Listview vornehmen.

                    z++;
                    string[] zeileFürZeile = {empfaenger, dateianhang, z.ToString("000") };
                    listView1.Items.Add(DateTime.Now.ToLongTimeString()).SubItems.AddRange(zeileFürZeile);
                    listView1.Refresh();

                    // Eintrag in die Logdatei

                    ////logDatei.WriteLine(kürzel+ ", " + DateTime.Now.ToLongTimeString() + ", " + empfaenger + ", " + dateianhang);

                    // Im Falle von bcc und / oder cc werden weitere Mails gesendet.

                    if (cc != "")
                    {
                        Global.fNeueNachricht[i].versenden(cc, "", "", betreff, body + fusszeile, dateianhang, optinalerAnhang1, optinalerAnhang2, optinalerAnhang3);

                        // Eintag in die Listview vornehmen.

                        z++;
                        string[] zeileFürZeile1 = {cc, dateianhang, z.ToString("000") };
                        listView1.Items.Add(DateTime.Now.ToLongTimeString()).SubItems.AddRange(zeileFürZeile1);
                        listView1.Refresh();

                        // Eintrag in die Logdatei

                        if (Properties.Settings.Default.CCundBCCinLogDateiSchreiben == true)
                        {
                            ////logDatei.WriteLine(DateTime.Now.ToLongTimeString() + ", " + cc + ", " + dateianhang);

                            // Ein neues Log-Objekt wird angeleget.

                            Global.fLogs.Add(new Log(cc, dateianhang, DateTime.Now.ToLongTimeString(), kürzel));
                        }
                    }
                    if (bcc != "")
                    {
                        Global.fNeueNachricht[i].versenden(bcc, "", "", betreff, body + fusszeile, dateianhang, optinalerAnhang1, optinalerAnhang2, optinalerAnhang3);

                        // Ein neues Log-Objekt wird angeleget.

                        // Global.fLogs.Add(new Log(bcc, dateianhang, DateTime.Now.ToLongTimeString(), kürzel));

                        // Eintag in die Listview vornehmen

                        z++;
                        string[] zeileFürZeile2 = { bcc, dateianhang, z.ToString("000") };
                        listView1.Items.Add(DateTime.Now.ToLongTimeString()).SubItems.AddRange(zeileFürZeile2);
                        listView1.Refresh();

                        // Eintrag in die Logdatei

                        if (Properties.Settings.Default.CCundBCCinLogDateiSchreiben == true)
                        {
                            ////logDatei.WriteLine(DateTime.Now.ToLongTimeString() + ", " + bcc + ", " + dateianhang);

                            // Ein neues Log-Objekt wird angeleget.

                            Global.fLogs.Add(new Log(bcc, dateianhang, DateTime.Now.ToLongTimeString(), kürzel ));
                        }
                    }
                }

                this.LogListeSortieren(Properties.Settings.Default.SortierkriteriumLogdatei);

                // Die Fortschrittsanzeige wird erstellt.
                progressBar1.PerformStep();
            }

            // Ggfs. Lodatei um eine weitere Zeile ergänzen.

            if (Properties.Settings.Default.maillogSenden == true)
            {
                if (Properties.Settings.Default.CCundBCCinLogDateiSchreiben == true)
                {
                    // Ein neues Log-Objekt wird angelegt.

                    //logDatei.WriteLine(DateTime.Now.ToLongTimeString() + ", Logs an " + Properties.Settings.Default.absender + " gesendet.");

                    // Ein neues Log-Objekt wird angeleget.

                    Global.fLogs.Add(new Log(Properties.Settings.Default.absender, dateianhang, DateTime.Now.ToLongTimeString(), kürzel));
                }
            }

            // Logdatei nach dem Schreiben schließen.

            //logDatei.Close();
            //log.Close();

            // Ggfs. Lodatei an den Absender schicken.

            //MessageBox.Show(anzeige);

            // in die Logdatei schreiben:
            try
            {
                FileStream log = new FileStream(Properties.Settings.Default.LogDatei, FileMode.Create, FileAccess.Write);
                StreamWriter logDatei = new StreamWriter(log);

                int i = Global.Logs.Count();
                int j = 0;

                if (logDatei.BaseStream.Position == 0)
                {
                    string jetzt = DateTime.Now.ToString();
                    logDatei.WriteLine(jetzt+"\n");  // Only write header in a new empty file.
                }

                logDatei.WriteLine(Properties.Settings.Default.kopfDerLogdatei + "\n\n");

                while (j < i)
                {
                    string komma = "  ";
                    if (Global.fLogs[j].Kürzel != "  ")
                    {
                        komma = ", ";
                    }

                    string datei = Path.GetFileName(Global.fLogs[j].DateiAnhang);

                    logDatei.WriteLine(Global.fLogs[j].Kürzel + komma + Global.fLogs[j].Empfänger + ", " + Global.fLogs[j].Zeitstempel + ", " + datei);
                    j++;
                }

                logDatei.Close();

                log.Close();

                if (Properties.Settings.Default.maillogSenden == true)
                {
                    Nachricht logMail = new Nachricht();
                    logMail.versenden(Properties.Settings.Default.absender, "", "", "Coelina salutes you!", "Anbei die Logdatei.", Properties.Settings.Default.LogDatei, "", "", "");
                    MessageBox.Show("Versand ok. Sofern sie eine Kopie an sich selbst geschickt haben, schauen Sie in Ihr Postfach.", "Coelina");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Die Logdatei ist schreibgeschützt\n" + ex, "Coelina");
            }

            groupBox3.Text = "Gesendet.";
        }