Autor Beitrag
Talemantros
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 444
Erhaltene Danke: 2

Win7 Proff 64bit
C# (VS2013)
BeitragVerfasst: So 19.06.16 10:45 
Hallo,
ich möchte gern aus meiner Anwendung heraus eine InfoEmail bestimmte Leute versenden können.
Dies funktioniert derzeit leider nur solange es ein Empfänger ist. Mit mehreren leider nicht

Probiert habe ich es so:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
                    Mail myMail = new Mail();
                    myMail.Subject = "Testbetreff";
                    myMail.MailTo = "daniel@fischbach-kassel.de;daniel@fischbach-kassel.de";
                    myMail.Body = "Testinhalt";
                    if (Global.SendMail(myMail))

                    ....


Der Quellcode zum Versnden

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
        public static bool SendMail(Mail mail)
        {
            //TODO: Absenderinformationen über Optionen abbilden
            try
            {
                if (mail.Body != string.Empty)
                {
                    System.Net.Mail.SmtpClient myMail = new System.Net.Mail.SmtpClient();


                    System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();

                    msg.From = new MailAddress("daniel@fischbach-kassel.de");

                    string[] mailAddresses = mail.MailTo.Split(";".ToCharArray());

                    foreach (string mailAddress in mailAddresses)
                    {
                        if (mailAddress != String.Empty)
                        {
                            msg.To.Add(mailAddress);
                        }
                    }

                    msg.Subject = mail.Subject;
                    msg.Body = mail.Body;

                    if ((mail.Attachment != string.Empty) && (File.Exists(mail.Attachment)))
                    {
                        Attachment MyAttachment = new Attachment(mail.Attachment);
                        msg.Attachments.Add(MyAttachment);
                    }

                    myMail.Credentials = new NetworkCredential("xxx""xxx");
                    myMail.Host = "smtp.1und1.de";
                    myMail.Send(msg);
              }

}


Funktioniert leider immer nur mit dem ersten Empfänger


Moderiert von user profile iconChristian S.: Topic aus Basistechnologien verschoben am So 19.06.2016 um 11:51

EDIT: Funktioniert genau wie oben beschrieben.
Die zweite Mail wurde nur vom EmailClient zusammen gefasst daher habe ich nicht gesehen, dass diese auch 2 x verwendet wurde.

Sorry
Csharp-programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: So 19.06.16 12:30 
Also ich würde eine andere Methode zum Versenden von E-Mails bevorzugen:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
private void SendMail(string Absender, string Empfänger, string Betreff, string InhaltDerMail, string SmtpServer, string Benutzername, string Passwort)
        {
            MailMessage myMessage = new MailMessage(Absender, Empfänger, Betreff, InhaltDerMail);
            SmtpClient client = new SmtpClient(SmtpServer);
            client.Port = 578;
            client.Credentials = new System.Net.NetworkCredential(Benutzername, Passwort);
            client.EnableSsl = true;
            client.Send(myMessage);
        }


Und um diese EMail an alle Leute (aus einer Datenbank oder einer generischen Liste) zu versenden, kannst du diese Methode dann in einer foreach Schleife oder so einbauen, und dann müsste es eigentlich funktionieren.

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Chefentwickler
Beiträge: 20313
Erhaltene Danke: 2104

Win 10
C# (VS 2017)
BeitragVerfasst: So 19.06.16 13:02 
user profile iconCsharp-programmierer hat folgendes geschrieben Zum zitierten Posting springen:
Also ich würde eine andere Methode zum Versenden von E-Mails bevorzugen:
Warum?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Csharp-programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: So 19.06.16 21:02 
Naja ich kenne bisher nur diese Methode und sie hat mich noch nie im Stich gelassen. Ich bin auch der Meinung, dass man sie besser aufrufen kann, durch eine Schleife und dieser Methode dann einfach die Werte mitgibt. Aber das ist Ansichtssache :)

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Chefentwickler
Beiträge: 20313
Erhaltene Danke: 2104

Win 10
C# (VS 2017)
BeitragVerfasst: So 19.06.16 21:15 
user profile iconCsharp-programmierer hat folgendes geschrieben Zum zitierten Posting springen:
Naja ich kenne bisher nur diese Methode und sie hat mich noch nie im Stich gelassen. Ich bin auch der Meinung, dass man sie besser aufrufen kann, durch eine Schleife und dieser Methode dann einfach die Werte mitgibt. Aber das ist Ansichtssache :)
Es ist bei E-Mails, die mehrere Empfänger haben, nun mal üblich, diese Empfänger auch in der Empfängerliste zu haben. Nur so wissen alle Personen, wer die Mail noch bekommen hat und können bei Bedarf entsprechend antworten. Außerdem ist es viel effizienter, weil der SMTP-Server dann das Mehrfach-Versenden erledigt und nicht der Client. Und ob ich die Schleife jetzt beim Setzen der Empfänger oder beim eigentlichen Versenden habe, ist wohl auch wurscht.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".