c# - MailMessage-custom-Header - mit System.Net.E-Mail;

Hier ist meine Methode für das testen von MailMessage-Header :

   private void Send_Email(string smtp_server, int port, string display_name, string from, string to, string subject, string html_body, string sender_email, string sender_password)
        {
            MailMessage mail = new MailMessage();
            mail.From = new MailAddress(from, display_name, Encoding.UTF8);
            mail.To.Add(to);

            mail.SubjectEncoding = Encoding.UTF8;
            mail.Subject = subject;

            mail.Headers.Add("Reply-To", "Reply-To__ <" + from + ">");
            mail.Headers.Add("Sender", from);
            mail.Headers.Add("Return-Path", from);
            mail.Headers.Add("MIME-Version", "1.0");

            string boundary = Guid.NewGuid().ToString();
            mail.Headers.Add("Content-Type", "multipart/mixed; boundary=--" + boundary);

            //mail.Headers.Add("", Environment.NewLine);
            //mail.Headers.Add("", Environment.NewLine);

            //mail.Headers.Add("", "--" + boundary);
            //mail.Headers.Add("Content-Type", "text/html; charset=utf-8");
            //mail.Headers.Add("Content-Transfer-Encoding", "base64");
            //mail.Headers.Add("", Environment.NewLine);
            //var bytes = Encoding.UTF8.GetBytes(html_body);
            //var base64 = Convert.ToBase64String(bytes);
            //mail.Headers.Add("", base64.ToString());
            //mail.Headers.Add("", "--" + boundary);

            SmtpClient smtp = new SmtpClient();
            smtp.UseDefaultCredentials = true;
            //smtp.Credentials = new System.Net.NetworkCredential(sender_email, sender_password);
            smtp.Host = smtp_server;
            smtp.Port = port;
            smtp.Timeout = 60000;

            smtp.SendCompleted += (s, e) =>
            {
                if (e.Cancelled)
                {
                    MessageBox.Show("sending email was canceled");
                }
                if (e.Error != null)
                {
                    MessageBox.Show("sending email was failed -> Error : " + e.Error.ToString());
                }
                else
                {
                    MessageBox.Show("email was sent successfully");
                }

                mail.Dispose();
            };

            try
            {
                smtp.SendAsync(mail, null);
            }
            catch (System.Net.Mail.SmtpException exp)
            {
                MessageBox.Show("sending email was failed, SmtpException -> Error : " + exp.ToString());

                mail.Dispose();
            }
        }

In php sind, sind Ihre Hände frei und können machen, Header und E-mail-Struktur sehr gut,

Werfen Sie einen Blick auf dieses Beispiel :

http://www.sanwebe.com/2011/01/send-php-mail-with-attachment

Ich will etwas tun, wie php in .Net und meine E-mail-Struktur mit überschriften.

Aber Fehler in meinen codes sind über diese Zeilen :

mail.Header.Add("", "blo blo blo");

Und Fehler :

Den Teil name kann nicht leer sein...

Wie kann ich umgehen, die Fehler und erstellen, die jeden Frieden in meinem E-mail mit Header :

wie -> Körper - Anlagen - usw.


Nach der Antwort auf meine Frage werde ich herausfinden, wie kann ich das kombinieren mehrerer Content-Typen :

wie -> html - plain/text - Oktett - etc

InformationsquelleAutor SilverLight | 2015-09-05
Schreibe einen Kommentar