首页 新闻 会员 周边

C#发送163邮件在本地发送成功。但部署到服务器发送不了。求解释!

0
悬赏园豆:20 [已关闭问题] 关闭于 2015-10-10 10:38
 /// <summary>  
        /// 初始化实例  
        /// </summary>  
        /// <param name="To">收件人地址</param>  
        /// <param name="From">发件人地址</param>  
        /// <param name="Body">邮件正文</param>  
        /// <param name="Title">邮件的主题</param>  
        /// <param name="Password">发件人密码</param>  
        public SendMail(string[] To, string From, string Body, string Title, string Password, Hashtable ht)
        {
            mailMessage = new MailMessage();
            foreach (var item in To)
            {
                mailMessage.To.Add(item);
            }
            TextCeShi ake = new TextCeShi();
            ake.indexout(ht);
            mailMessage.From = new System.Net.Mail.MailAddress(From);
            mailMessage.Subject = Title;
            mailMessage.Body = ake.textBody();
            mailMessage.IsBodyHtml = true;
            
            mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
            mailMessage.Priority = System.Net.Mail.MailPriority.Normal;
            this.password = Password;
        }

 

 

/// <summary>  
        /// 异步发送邮件  
        /// </summary>  
        /// <param name="CompletedMethod"></param>  
        public void SendAsync(SendCompletedEventHandler CompletedMethod)
        {
            if (mailMessage != null)
            {
                smtpClient = new SmtpClient();
                smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据  
                smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                smtpClient.Host = "smtp." + mailMessage.From.Host;
                smtpClient.SendCompleted += new SendCompletedEventHandler(CompletedMethod);//注册异步发送邮件完成时的事件  
                smtpClient.SendAsync(mailMessage, mailMessage.Body);
            }
        }
        /// <summary>  
        /// 发送邮件  
        /// </summary>  
        public void Send()
        {
            if (mailMessage != null)
            {
                   smtpClient = new SmtpClient();
               
                    smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据  
                    smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                    smtpClient.Host = "smtp." + mailMessage.From.Host;
                    smtpClient.Send(mailMessage);
                    mailMessage.Attachments.Dispose();
                    //smtpClient = null;
            }
        }
try
                {
                    //修改此处信息,可以注册一个邮箱进行发送
                    SendMailHelper.SendMail sd = new SendMailHelper.SendMail(new string[] { 帐号密码之类的})
                  
                    sd.Send();
                    message = "成功";
                    context.Response.Write("{\"success\":true,\"message\":\"" + message + "\"}");
                }
                catch
                {
                    message = "错误";
                    context.Response.Write("{\"success\":false,\"message\":\"" + message + "\"}");
                }

 

部署到服务器上后一直弹出“错误”

问题补充:

服务器端口开了还是不行

温柔的意外的主页 温柔的意外 | 初学一级 | 园豆:18
提问于:2015-10-09 15:26
< >
分享
所有回答(3)
0

能不能 吧 异常先弹出来  你这错误  也不知道是什么错?   端口没开  还是怎么着

wolfy | 园豆:2636 (老鸟四级) | 2015-10-09 15:29

就是执行了send()方法后跳出弹出“提示”。提示是我写的上面有

支持(0) 反对(0) 温柔的意外 | 园豆:18 (初学一级) | 2015-10-09 15:40

大神这个是我服务器上有问题吗? System.Net.Mail.SmtpException: Failure sending mail. ---> System.Net.WebException: The remote name could not be resolved: 'smtp.163.com' 

支持(0) 反对(0) 温柔的意外 | 园豆:18 (初学一级) | 2015-10-10 10:28

@温柔的意外: 你ping 一下 163的地址能ping通吗

支持(0) 反对(0) wolfy | 园豆:2636 (老鸟四级) | 2015-10-10 15:52
0

服务器可能端口没开。

lucika.zh | 园豆:62 (初学一级) | 2015-10-09 15:38

那么开?新手不懂

支持(0) 反对(0) 温柔的意外 | 园豆:18 (初学一级) | 2015-10-09 15:40

@温柔的意外: 

  1. 在邮件客户端收发邮件时,邮件收发使用不同的协议:发件协议一般使用SMTP协议,其端口号为25,收件采用POP3协议,其端口号为110;

  2. 在使用浏览器登录邮箱时直接使用HTTP协议,其端口号默认为80,当然邮件服务器之间还是使用邮件发送协议SMTP协议。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2015-10-09 15:43

@lucika.zh: 大神你能直接点吗,你说的我在网上看过。但不知道怎么弄!贴上代码最好!!感谢

支持(0) 反对(0) 温柔的意外 | 园豆:18 (初学一级) | 2015-10-09 15:46

@温柔的意外: 我错了,我真的错了。百度 服务器开放端口

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2015-10-09 15:56

@lucika.zh: 设置时有写个邮箱地址?这个写收邮件地址吗?还有我看到他们都写了IP那么我没看到在那?大神求教育啊!

支持(0) 反对(0) 温柔的意外 | 园豆:18 (初学一级) | 2015-10-09 16:20

@lucika.zh: 服务开了还是不行。还有啥子问题要注意的。求教育啊

支持(0) 反对(0) 温柔的意外 | 园豆:18 (初学一级) | 2015-10-09 17:07

@lucika.zh: 大神问个问题:虚拟机ping不通SMTP服务 有啥解决方案没?

支持(0) 反对(0) 温柔的意外 | 园豆:18 (初学一级) | 2015-10-10 11:47

@温柔的意外: 这个正常。服务器可以拒绝ping命令的。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2015-10-10 15:51
0

这段代码把错误吃掉了。。。

catch
                {
                    message = "错误";
                    context.Response.Write("{\"success\":false,\"message\":\"" + message + "\"}");
                }

把这段代码 改了

catch(Exception e)

{

 //把e.Message 显示出来 才能追踪具体原因啊

}

一点一点来

clarlespeng | 园豆:469 (菜鸟二级) | 2015-10-09 17:50

OK,我先看看是啥问题!

支持(0) 反对(0) 温柔的意外 | 园豆:18 (初学一级) | 2015-10-09 17:57

@温柔的意外: 我用的虚拟机测试服务器,虚拟机PING不了 smtp.163.com

支持(0) 反对(0) 温柔的意外 | 园豆:18 (初学一级) | 2015-10-10 11:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册