当前位置: 代码迷 >> ASP.NET >> asp.net 发送邮件的有关问题
  详细解决方案

asp.net 发送邮件的有关问题

热度:3836   发布时间:2013-02-25 00:00:00.0
asp.net 发送邮件的问题
用的system.net.mail



代码如下:

C# code
    static string strHost = String.Empty;    static string strAccount = String.Empty;    static string strPwd = String.Empty;    static string strFrom = String.Empty;    /// <summary>    /// 发送邮件    /// </summary>    /// <param name="to">接收方邮件地址</param>    /// <param name="title">邮件标题</param>    /// <param name="content">邮件正文内容</param>    public static bool sendmail(string to, string title, string content)    {        strHost = "stmp.XXX.com";   //STMP服务器地址  //此处实际运用中用的是我们公司的邮件服务器(支持stmp)        strAccount = "X@XXX.com";       //SMTP服务帐号        strPwd = "123456";       //SMTP服务密码        strFrom = "X@XXX.com";  //发送方邮件地址        SmtpClient _smtpClient = new SmtpClient();        _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式        _smtpClient.Host = strHost; ;//指定SMTP服务器        _smtpClient.Credentials = new System.Net.NetworkCredential(strAccount, strPwd);//用户名和密码        System.Net.Mail.MailMessage _mailMessage = new System.Net.Mail.MailMessage(strFrom, to);        _mailMessage.Subject = title;//主题        _mailMessage.Body = content;//内容        _mailMessage.BodyEncoding = System.Text.Encoding.UTF8;//正文编码        _mailMessage.IsBodyHtml = true;//设置为HTML格式        _mailMessage.Priority = MailPriority.High;//优先级        try        {            _smtpClient.Send(_mailMessage);            return true;        }        catch (Exception ex)        {                      return false;        }    }//提交    protected void btnadd_Click(object sender, ImageClickEventArgs e)    {        string title = Request.Form["title"].ToString().Trim();        string text = Request.Form["text"].ToString();        if (sendmail("我的邮箱@qq.com", title, text) == true)        {            base.Response.Write("<script>alert('您的意见已成功反馈,感谢您的支持!');location.href('" +Request.Url + "');</script>");        }        else        {            base.Response.Write("<script>alert('系统繁忙,请稍后再试!');location.href('" + Request.Url + "');</script>");                }    }











本地VS调试都通过,邮件也能成功发送,放在局域网一台server2003机器上客户端访问也能成功发送邮件,

但是放到我们的WEB服务器上就不能发送成功了 ,服务器安装的FrameWork3.5 ,网站访问一切正常,就是邮件不能发。


哪位知道怎么回事,该怎么解决啊?

------解决方案--------------------------------------------------------
服务器需要配置 STMP
------解决方案--------------------------------------------------------
服务器看有没有装macfee 这个杀毒软件会屏蔽邮件发送 解决方法GOOGLE
如果不是 就不知道什么问题了
------解决方案--------------------------------------------------------
_smtpClient.Host = strHost; ;//指定SMTP服务器
web服务器能访问smtp服务器吗?


------解决方案--------------------------------------------------------
把防火墙关了测试下,如果是,增加对应的端口。
------解决方案--------------------------------------------------------
端口问题,你把防火墙先关掉再试看,应该就可以了
------解决方案--------------------------------------------------------
关注,我也有这样的问题.
------解决方案--------------------------------------------------------
探讨
服务器看有没有装macfee 这个杀毒软件会屏蔽邮件发送 解决方法GOOGLE
如果不是 就不知道什么问题了

------解决方案--------------------------------------------------------
http://topic.csdn.net/u/20081105/14/284971d2-a321-4873-95c4-3a6453f2582b
------解决方案--------------------------------------------------------
我现在用的这个发送,LZ可以参考一下
C# code
public bool SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)        {            System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);            client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);            client.DeliveryMethod = SmtpDeliveryMethod.Network;                        System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(strFrom, strto, strSubject, strBody);            message.BodyEncoding = System.Text.Encoding.Default;            message.IsBodyHtml = true;            try            {                client.Send(message);                return true;            }            catch(Exception ex)            {                ErrorMsg = ex.ToString();                return false;            }        }
  相关解决方案