本人代码发送邮件完全没有问题,但是邮件无法执行。查看原因是:
subject: =?gb2312?b?c2hlbm13YW55aTExMQ==?=
Content-Type: text/html; charset="gb2312"
MIME-Version: 1.0
Content-Transfer-Encoding: base64用其他发送html邮件的工具邮件有以上代码。我的代码发送的邮件如下:(应该是系统自己加上去的)Subject: =?utf-8?B?5bey5oiQ5Yqf6I635Y+WSVDlnLDlnYA=?=
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable请教如何发送让邮件服务器识别的html邮件,请大家给个例子。网上找到那种IsBodyHtml = true;不能完全发送html邮件。请教如何发送具有完整标头的支持html邮件???本人使用vs2008开发,winform程序。

解决方案 »

  1.   

    winform下写的是不是就有问题啊?
      

  2.   

    public void MailSend(string MailFrom,string MailTo,string MailPwd,string Mailtitle,string MailCon)   
    {   
    MailMessage MyMail = new MailMessage();   
    MyMail.From = new MailAddress("", "");   
    MyMail.To.Add(new MailAddress(""));   
    MyMail.Subject = Mailtitle;   
    MyMail.Body = MailCon;   
    MyMail.IsBodyHtml = true;   
    SmtpClient smtpclient = new SmtpClient();   
    smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network;   
    smtpclient.Host = "";   
    smtpclient.Credentials = new System.Net.NetworkCredential(MailFrom, MailPwd);   
    smtpclient.Send(MyMail);   
    }   
    jmail.Message Jmail = new jmail.Message();   
    DateTime t = DateTime.Now;   
    String Subject = "";   
    String body = "";   
    String FromEmail = "";   
    String ToEmail = "";   
    Jmail.Charset = "GB2312";   
    Jmail.ContentType = "text/html";   
    Jmail.AddRecipient(ToEmail, "", "");   
    Jmail.From = FromEmail;   
    Jmail.MailServerUserName = "";   
    Jmail.MailServerPassWord = "";   
    Jmail.Subject = Subject;   
    Jmail.ContentType="text/html";   
    Jmail.Body = body + t.ToString();   
    Jmail.Send("", false);   
    Jmail.Close();   message.Body ="";
    client.Send(message);
      

  3.   

    public void MailSend(string MailFrom,string MailTo,string MailPwd,string Mailtitle,string MailCon)   
    {   
    MailMessage MyMail = new MailMessage();   
    MyMail.From = new MailAddress("", "");   
    MyMail.To.Add(new MailAddress(""));   
    MyMail.Subject = Mailtitle;   
    MyMail.Body = MailCon;   
    MyMail.IsBodyHtml = true;   
    SmtpClient smtpclient = new SmtpClient();   
    smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network;   
    smtpclient.Host = "";   
    smtpclient.Credentials = new System.Net.NetworkCredential(MailFrom, MailPwd);   
    smtpclient.Send(MyMail);   
    }   
    jmail.Message Jmail = new jmail.Message();   
    DateTime t = DateTime.Now;   
    String Subject = "";   
    String body = "";   
    String FromEmail = "";   
    String ToEmail = "";   
    Jmail.Charset = "GB2312";   
    Jmail.ContentType = "text/html";   
    Jmail.AddRecipient(ToEmail, "", "");   
    Jmail.From = FromEmail;   
    Jmail.MailServerUserName = "";   
    Jmail.MailServerPassWord = "";   
    Jmail.Subject = Subject;   
    Jmail.ContentType="text/html";   
    Jmail.Body = body + t.ToString();   
    Jmail.Send("", false);   
    Jmail.Close();   message.Body ="";
    client.Send(message);
      

  4.   

    public void MailSend(string MailFrom,string MailTo,string MailPwd,string Mailtitle,string MailCon)   
    {   
    MailMessage MyMail = new MailMessage();   
    MyMail.From = new MailAddress("", "");   
    MyMail.To.Add(new MailAddress(""));   
    MyMail.Subject = Mailtitle;   
    MyMail.Body = MailCon;   
    MyMail.IsBodyHtml = true;   
    SmtpClient smtpclient = new SmtpClient();   
    smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network;   
    smtpclient.Host = "";   
    smtpclient.Credentials = new System.Net.NetworkCredential(MailFrom, MailPwd);   
    smtpclient.Send(MyMail);   
    }   
    jmail.Message Jmail = new jmail.Message();   
    DateTime t = DateTime.Now;   
    String Subject = "";   
    String body = "";   
    String FromEmail = "";   
    String ToEmail = "";   
    Jmail.Charset = "GB2312";   
    Jmail.ContentType = "text/html";   
    Jmail.AddRecipient(ToEmail, "", "");   
    Jmail.From = FromEmail;   
    Jmail.MailServerUserName = "";   
    Jmail.MailServerPassWord = "";   
    Jmail.Subject = Subject;   
    Jmail.ContentType="text/html";   
    Jmail.Body = body + t.ToString();   
    Jmail.Send("", false);   
    Jmail.Close();   message.Body ="";
    client.Send(message);
      

  5.   


    wuyq11前辈请问您试过没有?? 用您给的代码实现不了。。我要的是标准的报头。
      

  6.   

    http://blog.csdn.net/zhoufoxcn/archive/2008/08/09/2789413.aspx
    http://topic.csdn.net/u/20101217/09/fb908fee-10d4-4cc3-a57b-853034a87431.html
      

  7.   

    建议各位高手看看清楚我的问题,我说了我的程序能发送html邮件的,但是标头不同,还有格式不同,是为什么这样??????  我用其他软件发送的是第一种头,用c#写的是第二种。
      

  8.   

    我也遇到了这种问题,发string正常能收到,发html提示发送成功,但收不到,收件的是QQ邮箱
      

  9.   


     /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="ToEmail">邮件目标地址(收件人)</param>
            /// <param name="FromEmail">邮件来源地址(发件人)</param>
            /// <param name="Subject">邮件主题</param>
            /// <param name="Content">邮件的内容</param>
            /// <param name="UserName">用户名(发件人)</param>
            /// <param name="UserPwd">用户密码(发件人)</param>
            /// <param name="Host">主机服务器类型(发件人):126,163,sina</param>
            /// <returns>发送结果</returns>
            public string SendEmail(string ToEmail, string FromEmail, string Subject, string Content, string UserName, string UserPwd,string Host)
            {
                SmtpClient client = new SmtpClient();
                client.Host = "smtp."+Host+".com";
                client.UseDefaultCredentials = false;
                client.Credentials = new NetworkCredential(UserName, UserPwd);
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                MailMessage message = new MailMessage(FromEmail, ToEmail);
                message.Subject = Subject;
                message.Body = Content;
                message.BodyEncoding = Encoding.GetEncoding("gb2312");
                message.IsBodyHtml = true;
                Attachment data  = new Attachment (@"E:\C__读写SQL数据库Image字段.txt",MediaTypeNames.Application.Octet);
                message.Attachments.Add(data);
                try
                {
                    client.Send(message);
                    return "邮件发送成功!";
                }
                catch (Exception ex)
                {
                    return "邮件发送失败,失败原因:" + ex.Message;
                }
            }试试这个
      

  10.   

    发送一个超链接,指向网易            MailMessage MyMail = new MailMessage();
                MyMail.From = new MailAddress("[email protected]");
                MyMail.To.Add(new MailAddress("[email protected]"));
                MyMail.Subject = "hello";
                MyMail.Body = "<a href='www.163.com' class='plus'>网易</a>";
                MyMail.IsBodyHtml = true;
                SmtpClient smtpclient = new SmtpClient();
                smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtpclient.Host = "smtp.163.com";
                smtpclient.Credentials = new System.Net.NetworkCredential("aaaa", "123456");
                smtpclient.Send(MyMail);