日期:2014-05-18  浏览次数:20516 次

vs2005发送邮件失败
MailMessage   mm   =   new   MailMessage( "sunnygao@miraclecastle.com ",   "sunnxxy@yahoo.com ",   "abc ",   "hello! ");
                SmtpClient   sc   =   new   SmtpClient( "192.168.*.*** ",   25);
                byte[]   names   =   System.Text.Encoding.Default.GetBytes( "sunnygao ");
                string   name   =   Convert.ToBase64String(names);
                byte[]   pwds   =   System.Text.Encoding.Default.GetBytes( "***** ");
                string   pwd   =   Convert.ToBase64String(pwds);
                sc.Credentials   =   new   System.Net.NetworkCredential(name,pwd);
                sc.Send(mm);
最简单的发送邮件。老是报由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。  
请问这个是什么问题?那位老大可以告诉一下。。谢谢了!!

------解决方案--------------------
给你两个:
用System.Web.Mail发信:
http://blog.xinyuee.com/u/1/s/2/a/22.aspx
用System.Net.Mail发信:
http://blog.xinyuee.com/u/1/s/2/a/31.aspx

均已通过测试。
------解决方案--------------------
/// <summary>
/// 发送邮件
/// </summary>
/// <param name= "strSmtpServer "> smtp地址 </param>
/// <param name= "UserName "> 用户名 </param>
/// <param name= "Password "> 密码 </param>
/// <param name= "strFrom "> 发信人地址 </param>
/// <param name= "strto "> 收信人地址 </param>
/// <param name= "strSubject "> 邮件标题 </param>
/// <param name= "strBody "> 邮件正文 </param>
public static void SendMail(string strSmtpServer, string UserName, string Password, string strFrom, string strto, string strSubject, string strBody, string strFileName)
{
//生成一个 使用SMTP发送邮件的客户端对象
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(strSmtpServer);

//表示以当前登录用户的默认凭据进行身份验证
client.UseDefaultCredentials = true;



//包含用户名和密码
client.Credentials = new System.Net.NetworkCredential(UserName, Password);

//指定如何发送电子邮件。
//Network 电子邮件通过网络发送到 SMTP 服务器。
//PickupDirectoryFromIis 将电子邮件复制到挑选目录,然后通过本地 Internet 信息服务 (IIS) 传送。
//SpecifiedPickupDirectory 将电子邮件复制到 SmtpClient.PickupDirectoryLocation 属性指定的目录,然后由外部应用程序传送。

client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

//建立邮件对象
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(strFrom, strto, strSubject,strBody);

//定义邮件正文,主题的编码方式
message.BodyEncoding = System.Text.Encoding.GetEncoding( "gb2312 ");
message.SubjectEncoding = System.Text.Encoding.GetEncoding( "gb2312 ");

//获取或设置一个值,该值指示电子邮件正文是否为 HTML。
message.IsBodyHtml = false;

//指定邮件优先级

message.Priority =