none
为什么139邮箱没有发送成功! RRS feed

  • 问题

  • 原码如下:
    string from = "13599999999@139.com";//发件人邮件地址
    string userName = "13599999999";
    string password = "123456";
    string smtpHost = "smtp.139.com";
    MailAddress _from = new MailAddress(from);
    MailAddress _to = new MailAddress("13599999999@139.com");
    MailMessage message = new MailMessage(_from, _to);
    message.Subject ="Test";
    message.Body = "dddde";
    SmtpClient client = new SmtpClient(smtpHost,25);
    client.Credentials = new System.Net.NetworkCredential(userName, password);
    client.Send(message);
    执行完后,为什么在139邮箱没有收到邮件
    谢谢:)

    http://blog.sina.com.cn/taotesea
    2011年7月5日 2:39

答案

  • hi~

    可以的話請在您的程式中改成

    SmtpClient client = new SmtpClient(smtpHost,25);
    client.EnableSsl = true;   // new
    client.UseDefaltCredentials = false;    // new
    client.Credentials = new System.Net.NetworkCredential(userName, password);
    client.DeliveryMethod = SmtpDeliveryMethod.Network;  // new
    client.Send(message);
    可參考: http://www.dotblogs.com.tw/nobel12/archive/2010/07/27/16834.aspx

    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    2011年7月5日 5:06
  • HI~

    我剛發現一個地方好像你少寫了

    原本你寫的如下

    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Credentials = cred;
    smtp.Port = 25;
    //送出Mail
    smtp.Send(mail);

     

    請改成

    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Credentials = cred;
    smtp.Port = 25;

    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;   //<-- 好像就是少了這個!!!

    //送出Mail
    smtp.Send(mail);

     

    你參考一下我的 Blog  這篇: http://www.dotblogs.com.tw/nobel12/archive/2010/07/27/16834.aspx

    上述缺的那一行可以在我的程式中看到

    然後還有其他2種方式

    例如: 

    smtp_Client.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis; 

    smtp_Client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;

     

    再試試看~  這次應該會成功才對~  因為少了指定 DeliveryMethod  所以當然沒辦法寄出去

     

    不好意思~ 我用繁體中文字~  看不懂的請多包涵..... Thank you!


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    2011年7月7日 8:55

全部回复

  • 你好

    當你發送時有沒有出現任何的ERROR MESSAGE

    或者你可以嘗試一下

    和 username為 13599999999@139.com

    更改TO address成另一個地址看看

    或者嘗試以下的CODE

    using System.Net.Mail;
    
    var fromAddress = new MailAddress("13599999999@139.com");
    var toAddress = new MailAddress("13599999999@139.com");
    string fromPassword = "123456"
    string subject = "Test";
    string body = "dddde";
    
    var smtp = new SmtpClient
          {
            Host = "smtp.139.com",
            Port = 25,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
          };
    using (var message = new MailMessage(fromAddress, toAddress)
               {
                 Subject = subject,
                 Body = body
               })
    {
      smtp.Send(message);
    }
    
    Please correct me if my concept is wrong

     


    Chi
    2011年7月5日 4:05
    版主
  • hi~

    可以的話請在您的程式中改成

    SmtpClient client = new SmtpClient(smtpHost,25);
    client.EnableSsl = true;   // new
    client.UseDefaltCredentials = false;    // new
    client.Credentials = new System.Net.NetworkCredential(userName, password);
    client.DeliveryMethod = SmtpDeliveryMethod.Network;  // new
    client.Send(message);
    可參考: http://www.dotblogs.com.tw/nobel12/archive/2010/07/27/16834.aspx

    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    2011年7月5日 5:06
  • dear

    请参考以下程式码:

    1.

        MailMessage mail = new MailMessage();
        NetworkCredential cred = new NetworkCredential("13599999999@139.com", "123456");
        //收件者
        mail.To.Add("13599999999@139.com,ooxx@hotmail.com");
        mail.Subject = "subject";
        //寄件者
        mail.From = new System.Net.Mail.MailAddress("13599999999@139.com");
        mail.IsBodyHtml = true;
        mail.Body = "message";
        //設定SMTP
        SmtpClient smtp = new SmtpClient("smtp.139.com");
        smtp.UseDefaultCredentials = false;
        smtp.EnableSsl = true;
        smtp.Credentials = cred;
        smtp.Port = 25;
        //送出Mail
        smtp.Send(mail);

    2.若发送失败请检查是否有申请帐号以及密码是否正确

    3.若你有账号请确定smtp设定

    http://www.emailrobot.cn/help/cn/smpt-set.htm

    http://mail.139.com/help/help.html


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年7月5日 11:07
  • 你好

    當你發送時有沒有出現任何的ERROR MESSAGE

    或者你可以嘗試一下

    和 username為 13599999999@139.com

    更改TO address成另一個地址看看

    或者嘗試以下的CODE

     

    using System.Net.Mail;
    
    var fromAddress = new MailAddress("13599999999@139.com");
    var toAddress = new MailAddress("13599999999@139.com");
    string fromPassword = "123456"
    string subject = "Test";
    string body = "dddde";
    
    var smtp = new SmtpClient
       {
        Host = "smtp.139.com",
        Port = 25,
        EnableSsl = true,
        DeliveryMethod = SmtpDeliveryMethod.Network,
        UseDefaultCredentials = false,
        Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
       };
    using (var message = new MailMessage(fromAddress, toAddress)
          {
           Subject = subject,
           Body = body
          })
    {
     smtp.Send(message);
    }
    
    Please correct me if my concept is wrong

     

     


    Chi
    还是没有成功,没有收到邮件
    http://blog.sina.com.cn/taotesea
    2011年7月6日 4:15
  • dear

    请参考以下程式码:

    1.

        MailMessage mail = new MailMessage();
        NetworkCredential cred = new NetworkCredential("13599999999@139.com", "123456");
        //收件者
        mail.To.Add("13599999999@139.com,ooxx@hotmail.com");
        mail.Subject = "subject";
        //寄件者
        mail.From = new System.Net.Mail.MailAddress("13599999999@139.com");
        mail.IsBodyHtml = true;
        mail.Body = "message";
        //設定SMTP
        SmtpClient smtp = new SmtpClient("smtp.139.com");
        smtp.UseDefaultCredentials = false;
        smtp.EnableSsl = true;
        smtp.Credentials = cred;
        smtp.Port = 25;
        //送出Mail
        smtp.Send(mail);

    2.若发送失败请检查是否有申请帐号以及密码是否正确

    3.若你有账号请确定smtp设定

    http://www.emailrobot.cn/help/cn/smpt-set.htm

    http://mail.139.com/help/help.html


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    谢谢,但是没有成功
    http://blog.sina.com.cn/taotesea
    2011年7月6日 4:16
  • hi~

    可以的話請在您的程式中改成

    SmtpClient client = new SmtpClient(smtpHost,25);
    client.EnableSsl = true;   // new
    client.UseDefaltCredentials = false;    // new
    client.Credentials = new System.Net.NetworkCredential(userName, password);
    client.DeliveryMethod = SmtpDeliveryMethod.Network;  // new
    client.Send(message);
    可參考: http://www.dotblogs.com.tw/nobel12/archive/2010/07/27/16834.aspx

    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    内容和其他的内容一样也是没有成功
    http://blog.sina.com.cn/taotesea
    2011年7月6日 4:17
  • hi~

    如果你把 port 25 改成 465 呢?

    應該這麼說.... 

    smtp.EnableSsl = true;    >>>  就把你原先 25 的 port 改成 465

    但是如果你是用 smtp.EnableSsl = false;   >>> 就用你原本的 port

     

    試試看吧~  應該這樣就沒有錯了!


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    2011年7月6日 8:08
  • dear

    请问使用程式送出的邮件有例外讯习吗?若没有例外可能已经发送成功,导致你收不到信的原因可能有:

    1.被当成垃圾邮件

    2.被对方的Mail Server系统过滤掉

    若有例外讯习抛出可能有以下原因:

    1.若发送失败请检查是否有申请帐号以及密码是否正确

    2.若你有账号请确定smtp设定


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年7月6日 8:25
  • MailMessage mail = new MailMessage();
    System.Net.NetworkCredential cred = new System.Net.NetworkCredential("13599999999@139.com", "123456");
    //收件者
    mail.To.Add("13599999999@139.com);
    mail.Subject = "subject";
    //寄件者
    mail.From = new System.Net.Mail.MailAddress("13599999999@139.com");
    mail.IsBodyHtml = true;
    mail.Body = "message";
    //設定SMTP
    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Credentials = cred;
    smtp.Port = 25;
    //送出Mail
    smtp.Send(mail);

    这是根据大家的内容我写的代码,但是还是没有成功

    同时在垃圾邮箱里没有邮件,密码也没有错误!


    http://blog.sina.com.cn/taotesea
    2011年7月7日 2:31
  • 可能是出在ESMTP这个问题上了

     


    http://blog.sina.com.cn/taotesea
    2011年7月7日 4:13
  • MailMessage mail = new MailMessage();
    System.Net.NetworkCredential cred = new System.Net.NetworkCredential("13599999999@139.com", "123456");
    //收件者
    mail.To.Add("13599999999@139.com);
    mail.Subject = "subject";
    //寄件者
    mail.From = new System.Net.Mail.MailAddress("13599999999@139.com");
    mail.IsBodyHtml = true;
    mail.Body = "message";
    //設定SMTP
    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Credentials = cred;
    smtp.Port = 25;
    //送出Mail
    smtp.Send(mail);

    这是根据大家的内容我写的代码,但是还是没有成功

    同时在垃圾邮箱里没有邮件,密码也没有错误!


    http://blog.sina.com.cn/taotesea

     

    是否能再改一下:

    //設定SMTP
    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = false;     //<--- 這裡改成 false 試試看一下
    smtp.Credentials = cred;
    smtp.Port = 25;
    //送出Mail
    smtp.Send(mail);

     

    或者

     

    //設定SMTP
    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Credentials = cred;
    smtp.Port = 465;   //<---  上面 EnableSsl 不變這裡改成 465
    //送出Mail
    smtp.Send(mail);

     

    都再請試試~


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    2011年7月7日 4:20
  • MailMessage mail = new MailMessage();
    System.Net.NetworkCredential cred = new System.Net.NetworkCredential("13599999999@139.com", "123456");
    //收件者
    mail.To.Add("13599999999@139.com);
    mail.Subject = "subject";
    //寄件者
    mail.From = new System.Net.Mail.MailAddress("13599999999@139.com");
    mail.IsBodyHtml = true;
    mail.Body = "message";
    //設定SMTP
    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Credentials = cred;
    smtp.Port = 25;
    //送出Mail
    smtp.Send(mail);

    这是根据大家的内容我写的代码,但是还是没有成功

    同时在垃圾邮箱里没有邮件,密码也没有错误!


    http://blog.sina.com.cn/taotesea

     

    是否能再改一下:

    //設定SMTP
    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = false;     //<--- 這裡改成 false 試試看一下
    smtp.Credentials = cred;
    smtp.Port = 25;
    //送出Mail
    smtp.Send(mail);

     

    或者

     

    //設定SMTP
    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Credentials = cred;
    smtp.Port = 465;   //<---  上面 EnableSsl 不變這裡改成 465
    //送出Mail
    smtp.Send(mail);

     

    都再請試試~


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12

    还是不行的,没有任何邮件,谢谢你:)

    是不是ESMTP的问题呢?


    http://blog.sina.com.cn/taotesea
    2011年7月7日 7:46
  • HI~

    我剛發現一個地方好像你少寫了

    原本你寫的如下

    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Credentials = cred;
    smtp.Port = 25;
    //送出Mail
    smtp.Send(mail);

     

    請改成

    SmtpClient smtp = new SmtpClient("smtp.139.com");
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Credentials = cred;
    smtp.Port = 25;

    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;   //<-- 好像就是少了這個!!!

    //送出Mail
    smtp.Send(mail);

     

    你參考一下我的 Blog  這篇: http://www.dotblogs.com.tw/nobel12/archive/2010/07/27/16834.aspx

    上述缺的那一行可以在我的程式中看到

    然後還有其他2種方式

    例如: 

    smtp_Client.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis; 

    smtp_Client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;

     

    再試試看~  這次應該會成功才對~  因為少了指定 DeliveryMethod  所以當然沒辦法寄出去

     

    不好意思~ 我用繁體中文字~  看不懂的請多包涵..... Thank you!


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    2011年7月7日 8:55
  • hi~

    樓主~  請問成功了嗎?


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    2011年7月8日 5:44
  • hi~

    樓主~  請問成功了嗎?


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12

    成功了不是代码的问题,我建立这个工程有问题,我太粗心了

    谢谢你:)


    http://blog.sina.com.cn/taotesea

    2011年7月8日 15:12
  • hi~

    不客氣啦~   我也很粗心~ 雖然一直看 code 卻少看了一行~

    不然你的問題早就解決了~    也謝謝你讓我學會更細心囉~ Thank you!


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    2011年7月8日 23:35