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

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.html
------解决方案--------------------
我现在用的这个发送,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);