看下我写的邮件发送的代码,为什么我发不出去

gao424424 2009-09-23 08:52:59
好心人帮我调试调试啊!为什么发不出去啊!
using System.Net.Mail;
using System.Net;


try
{
MailAddress from = new MailAddress("test@163.com");
MailAddress to = new MailAddress("test@163.com");
MailMessage message = new MailMessage(from, to);
message.Subject = "主题";
message.IsBodyHtml = true;
message.Body = "正文";
SmtpClient client = new SmtpClient("smtp.163.com", 25);
client.Credentials = new System.Net.NetworkCredential("test", "password");//用户名,密码
client.Send(message);//发送
message.Dispose();
}
catch (Exception ep)
{
//ep.Message.ToString();
MessageBox.Show("发送失败!");
}
...全文
407 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
gao424424 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 spmzfz 的回复:]
参考一下我的这个:
C# code//using System.Net.Mail;
System.Net.Mail.MailAddress EmailFrom=new System.Net.Mail.MailAddress("fanny110119@126.com","Judge");
System.Net.Mail.MailAddress EmailTo=new System.Net.Mail.MailAddress("spmzfz@126.com","Spmzfz126");
System.Net.Mail.MailMessage Email=new System.Net.Mail.MailMessage(EmailFrom, EmailTo);

Email.Bcc.Add(new System.Net.Mail.MailAddress("zengfanzhi@21cn.com"));//密件抄送收件人//Email.CC.Add(new System.Net.Mail.MailAddress("spmzfz@163.com"));// 抄送收件人//Email.Attachments.Add(new System.Net.Mail.Attachment(@"F:\Other\MPC\STL.jpg"));
Email.Subject="OK,Test By c#2008";
Email.Body="Hello ,This is Test By c#2008\n"+ System.DateTime.Now.ToString();
Email.SubjectEncoding= System.Text.Encoding.Default;
Email.BodyEncoding=System.Text.Encoding.Default;
Email.IsBodyHtml=true;
Email.Priority= System.Net.Mail.MailPriority.Normal;

System.Net.Mail.SmtpClient SmtpPC=new System.Net.Mail.SmtpClient("smtp.126.com",25);
SmtpPC.DeliveryMethod= System.Net.Mail.SmtpDeliveryMethod.Network;
SmtpPC.Credentials=new System.Net.NetworkCredential("fanny110119","PS");//new ...//SmtpPC.UseDefaultCredentials = false;//this line code writein is wrong !try
{
SmtpPC.Send(Email);
MessageBox.Show("OK,Send Email Complete !");
}catch (Exception E)
{
MessageBox.Show(E.Message);
}
[/Quote]
您的代码我也试了,也发不出邮件啊!
yidichaxiang 2009-09-24
  • 打赏
  • 举报
回复
mark+up
BitCoffee 2009-09-24
  • 打赏
  • 举报
回复
代码方面的问题不大.主要是现在的很多免费邮箱都不支持SMTP外发了.早些年申请的可以.
可以将你的邮箱在ouktlook里面设置,看能否发送,能发送,再来看代码的问题.
spmzfz 2009-09-24
  • 打赏
  • 举报
回复
加与小面这行语句试试:
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;


spmzfz 2009-09-24
  • 打赏
  • 举报
回复
参考一下我的这个:

//using System.Net.Mail;

System.Net.Mail.MailAddress EmailFrom = new System.Net.Mail.MailAddress("fanny110119@126.com", "Judge");
System.Net.Mail.MailAddress EmailTo = new System.Net.Mail.MailAddress("spmzfz@126.com", "Spmzfz126");
System.Net.Mail.MailMessage Email = new System.Net.Mail.MailMessage(EmailFrom, EmailTo);

Email.Bcc.Add(new System.Net.Mail.MailAddress("zengfanzhi@21cn.com")); //密件抄送收件人
//Email.CC.Add(new System.Net.Mail.MailAddress("spmzfz@163.com")); // 抄送收件人
//Email.Attachments.Add(new System.Net.Mail.Attachment(@"F:\Other\MPC\STL.jpg"));

Email.Subject= "OK,Test By c#2008 ";
Email.Body ="Hello ,This is Test By c#2008\n" + System.DateTime.Now.ToString();
Email.SubjectEncoding= System.Text.Encoding.Default;
Email.BodyEncoding=System.Text.Encoding.Default;
Email.IsBodyHtml = true;
Email.Priority = System.Net.Mail.MailPriority.Normal;

System.Net.Mail.SmtpClient SmtpPC = new System.Net.Mail.SmtpClient("smtp.126.com", 25);
SmtpPC.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
SmtpPC.Credentials = new System.Net.NetworkCredential("fanny110119", "PS"); //new ...
//SmtpPC.UseDefaultCredentials = false; //this line code writein is wrong !

try
{
SmtpPC.Send(Email);
MessageBox.Show("OK,Send Email Complete !");
}
catch (Exception E)
{
MessageBox.Show(E.Message);
}
zisefengye 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 gao424424 的回复:]
引用 29 楼 gao424424 的回复:
引用 16 楼 gao424424 的回复:
引用楼主 gao424424 的回复:
好心人帮我调试调试啊!为什么发不出去啊!
using System.Net.Mail;
using System.Net;
 

try
            {
                MailAddress from = new MailAddress("test@qq.com");//发送者
                MailAddress to = new MailAddress("gao424424@hotmail.com");//接受者
                MailMessage message = new MailMessage(from, to);
                message.Subject = "主题";
                message.IsBodyHtml = true;
                message.Body = "正文";
                SmtpClient client = new SmtpClient("smtp.qq.com", 25);//smtp和端口
                client.Credentials = new NetworkCredential("test", "test");//用户名,密码
                client.DeliveryMethod = SmtpDeliveryMethod.Network;//邮件通过网络发送到服务器
                client.Send(message);//发送
                message.Dispose();
            }
            catch (Exception ep)
            {
                MessageBox.Show(ep.Message);
            }


报错信息如下:
显示是语法错误,无法识别命令。
----------------------------------------------------
请问我的代码错误和在啊!

我用outlook 就可以发出去,我用这些代码就发不出去,说我语法错误。谁知道我的语法错在哪了啊,求救啊!我用的是qq邮箱!

[/Quote]
晕啊。看21楼就知道了
gao424424 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 gao424424 的回复:]
引用 16 楼 gao424424 的回复:
引用楼主 gao424424 的回复:
好心人帮我调试调试啊!为什么发不出去啊!
using System.Net.Mail;
using System.Net;
 

try
            {
                MailAddress from = new MailAddress("test@qq.com");//发送者
                MailAddress to = new MailAddress("gao424424@hotmail.com");//接受者
                MailMessage message = new MailMessage(from, to);
                message.Subject = "主题";
                message.IsBodyHtml = true;
                message.Body = "正文";
                SmtpClient client = new SmtpClient("smtp.qq.com", 25);//smtp和端口
                client.Credentials = new NetworkCredential("test", "test");//用户名,密码
                client.DeliveryMethod = SmtpDeliveryMethod.Network;//邮件通过网络发送到服务器
                client.Send(message);//发送
                message.Dispose();
            }
            catch (Exception ep)
            {
                MessageBox.Show(ep.Message);
            }

[/Quote]
报错信息如下:
显示是语法错误,无法识别命令。
----------------------------------------------------
请问我的代码错误和在啊!

我用outlook 就可以发出去,我用这些代码就发不出去,说我语法错误。谁知道我的语法错在哪了啊,求救啊!我用的是qq邮箱!
随风落梦 2009-09-24
  • 打赏
  • 举报
回复
你按F5调试下看看,具体哪错了
gao424424 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 gao424424 的回复:]
引用楼主 gao424424 的回复:
好心人帮我调试调试啊!为什么发不出去啊!
using System.Net.Mail;
using System.Net;
 

try
            {
                MailAddress from = new MailAddress("test@qq.com");//发送者
                MailAddress to = new MailAddress("gao424424@hotmail.com");//接受者
                MailMessage message = new MailMessage(from, to);
                message.Subject = "主题";
                message.IsBodyHtml = true;
                message.Body = "正文";
                SmtpClient client = new SmtpClient("smtp.qq.com", 25);//smtp和端口
                client.Credentials = new NetworkCredential("test", "test");//用户名,密码
                client.DeliveryMethod = SmtpDeliveryMethod.Network;//邮件通过网络发送到服务器
                client.Send(message);//发送
                message.Dispose();
            }
            catch (Exception ep)
            {
                MessageBox.Show(ep.Message);
            }

我现在显示是语法错误,请问我的代码错误和在啊!
[/Quote]
我用outlook 就可以发出去,我用这些代码就发不出去,说我语法错误。谁知道我的语法错在哪了啊,求救啊!我用的是qq邮箱!
随风落梦 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 wartim 的回复:]
这就不是你的代码问题了,网易的pop3早收费了

http://wenwen.soso.com/z/q89958310.htm
为什么我的网易163/126邮箱不支持POP服务?

网易邮件系统维护公告亲爱的用户朋友:自2006年11月16日起,网易免费邮件系统的POP3及SMTP服务将暂停开通,此前已经开通POP3及SMTP服务的邮箱帐号则不受影响,仍然可以正常使用。对此如有任何疑问,可发送邮件至:kf163@188.com,网易客户服务中心将在24小时内回复你。网易邮件中心2006年11月15日原来网易的邮箱不支持pop/smtp了.我发了一封邮件请求开通客户端设置.却至今没有回复.如果真的是邮件系统维护不可能是这么久的时间,于是自猜可是下面的原因造成网易暂停客户端设置:让新用户统统登录网易邮箱网页,让网易邮箱的广告的曝光率更高.更加有效果;之前就有yahoo邮箱不支持pop/smtp,hotmail.虽然支持,但设置方法比较难.加上msn就能弹出邮箱.很多用户放弃在outlook设置hotmail客户端收发信.但是这样会造成多少的用户流失?不知道网易这样挺而走险的方法划算吗?还是网易在免费邮箱上投入几千万的巨资压力下的实属无奈?不得而知,或许这也是商业运作的秘密.木叶 2008-08-24 08:07 检举

你好,对于2006年11月16日以后注册的网易免费邮箱不支持POP服务,之前注册的就可以使用。如果你的邮箱开通了收费业务,比如随身邮,邮箱伴侣,则你的POP服务会被开启,当你的收费业务结束,你的POP服务则会终止。   扶瑤直丄 2008-08-24 08:08 检举
[/Quote]
网易真行哦!幸好我的126邮箱注册的早,还支持smtp服务的。嘻嘻
wartim 2009-09-24
  • 打赏
  • 举报
回复
这就不是你的代码问题了,网易的pop3早收费了

http://wenwen.soso.com/z/q89958310.htm
为什么我的网易163/126邮箱不支持POP服务?

网易邮件系统维护公告亲爱的用户朋友:自2006年11月16日起,网易免费邮件系统的POP3及SMTP服务将暂停开通,此前已经开通POP3及SMTP服务的邮箱帐号则不受影响,仍然可以正常使用。对此如有任何疑问,可发送邮件至:kf163@188.com,网易客户服务中心将在24小时内回复你。网易邮件中心2006年11月15日原来网易的邮箱不支持pop/smtp了.我发了一封邮件请求开通客户端设置.却至今没有回复.如果真的是邮件系统维护不可能是这么久的时间,于是自猜可是下面的原因造成网易暂停客户端设置:让新用户统统登录网易邮箱网页,让网易邮箱的广告的曝光率更高.更加有效果;之前就有yahoo邮箱不支持pop/smtp,hotmail.虽然支持,但设置方法比较难.加上msn就能弹出邮箱.很多用户放弃在outlook设置hotmail客户端收发信.但是这样会造成多少的用户流失?不知道网易这样挺而走险的方法划算吗?还是网易在免费邮箱上投入几千万的巨资压力下的实属无奈?不得而知,或许这也是商业运作的秘密.木叶 2008-08-24 08:07 检举

你好,对于2006年11月16日以后注册的网易免费邮箱不支持POP服务,之前注册的就可以使用。如果你的邮箱开通了收费业务,比如随身邮,邮箱伴侣,则你的POP服务会被开启,当你的收费业务结束,你的POP服务则会终止。  扶瑤直丄 2008-08-24 08:08 检举
zisefengye 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 tengye19840704 的回复:]
using System.Net.Mail;

我试了下包不进来这个怎么回事..
我的using System.Net.后只有一个 socket;没有Mail..是什么原因啊?

[/Quote]
项目中添加引用System.Net就行了
zhengliyan_star 2009-09-24
  • 打赏
  • 举报
回复
163邮箱 不支持,用企业邮箱或者 126的试试看!
zisefengye 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 chenludaniel 的回复:]
引用 20 楼 zisefengye 的回复:
换hotmail吧,我也碰到过这个问题.换了hotmail就能发了,国内大多数邮箱不提供smtp.

不提供smtp,那提供什么啊?难道就没其他办法啊?
[/Quote]
这个没办法,你要用.net提供的smtp来实现发送邮件,就必须用提供smtp的邮箱,要么用hotmail,要么换别的方式发送邮件,网上肯定能找到别人写的插件,jmail也是个选择.
tengye19840704 2009-09-24
  • 打赏
  • 举报
回复
using System.Net.Mail;

我试了下包不进来这个怎么回事..
我的using System.Net.后只有一个 socket;没有Mail..是什么原因啊?
随风落梦 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 zisefengye 的回复:]
换hotmail吧,我也碰到过这个问题.换了hotmail就能发了,国内大多数邮箱不提供smtp.
[/Quote]
不提供smtp,那提供什么啊?难道就没其他办法啊?
zisefengye 2009-09-24
  • 打赏
  • 举报
回复
代码如下:
try
{
MailMessage mailMessage = new MailMessage(from,to,subject,body);
SmtpClient mailClient = new SmtpClient("smtp.live.com",25);
mailClient.Credentials= new NetworkCredential("yourname","mailpassword");
mailClient.EnablSsl = true;
mailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
mailClient.Send(mailMessage);
}
catch(SmtpException ex)
{
throw new SmtpException(ex.Message);
}

我就是用这个发放发送成功的.什么qq,163,sina,yahoo我都试过,都以失败告终.
zisefengye 2009-09-24
  • 打赏
  • 举报
回复
换hotmail吧,我也碰到过这个问题.换了hotmail就能发了,国内大多数邮箱不提供smtp.
wartim 2009-09-24
  • 打赏
  • 举报
回复
你的代码我发到mail.nbip.net 试了下可以收到,当然我的邮箱也要是XXXX@nbip.net的
hoho2010 2009-09-24
  • 打赏
  • 举报
回复

public void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
{
System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;

System.Net.Mail.MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody);
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
client.Send(message);
}



第一个参数如果是163邮箱就写smtp.163.com
第二个参数发件人的帐号
第三个参数发件人密码
第四个参数收件人帐号
第五个参数主题
第六个参数内容.






可以看看这个,我在winfrom中测试过没问题
加载更多回复(12)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧