none
asp.net发送邮件代码问题 RRS feed

  • 常规讨论

  • 如题,有如下代码:webconfig配置文件为:

     <system.net>
      <!--如果是第三方smtp服务器,需要指定userName 和 password,并根据host指定发件人邮件地址from
            测试发现from值必须是userName值加上指定的smpt服务器才行,而且是必须指定的
            如果是本机smtp服务器,只需指定defaultCredentials="true"即可-->
      <mailSettings>
       <smtp deliveryMethod="Network" from="0147@163.com">
        <network host="smtp.163.com" port="25" userName="" password=""></network>
       </smtp>
      </mailSettings>
     </system.net>
     <connectionStrings/>
     <system.web>

    后台代码为:

     using (MailMessage message = new MailMessage())
                {
                    message.To.Add(new MailAddress("531691887@qq.com")); //收件人邮箱
                    message.Subject = "缺纸提示";//邮件主题

                    message.Body = string.Format("终端打印机缺纸qwqwqwqwqwqwqwqwqwqwqwqwqwqwq");  //邮件正文

                    SmtpClient mailClient = new SmtpClient();
                    mailClient.Send(message);
                }

    这些代码如果我在VS里面调试的时候,可以向531691887@qq.com这个邮箱发送邮件。

    当我把这个测试程序发布到IIS上面部署时,局域网内也可以向这个地址发送邮件,(这里局域网访问时要关闭防火墙。)

    但是,当我部署到服务器上时,网页可以访问,但是,邮件不能发送出去!

    请问,这和权限有关系吗?请各版主详细告知!


    2011年3月25日 7:41

全部回复

  • 好像你没有设置发送方的邮箱,即from;下面给一个例子给你,你可能就明白,我不想写太多字。

       string to = "jane@contoso.com";
    string from = "ben@contoso.com";
    MailMessage message = new MailMessage(from, to);
    message.Subject = "Using the new SMTP client.";
    message.Body = @" you can send an e-mail message from an application very easily.";
    SmtpClient client = new SmtpClient(server);

    client.UseDefaultCredentials = true;
    client.Send(message);


    2011年3月25日 9:32
  • 服务器的安全设置一般更严格的,比如,有的服务器是不能访问外网的,
    【孟子E章】
    2011年3月26日 12:11
    版主
  • 发送方的邮件我设置在webconfig的配置文件里呀!那个163的邮箱就是发送邮件的人。

    2011年3月28日 0:28
  • 那一般会有哪些安全方面的设置会导致邮件发送失败呢?能不能简单的举个例子......
    2011年3月28日 0:29
  • 如果我采用webservices能不能让部署到服务器上的程序成功的发送邮件?

    2011年3月28日 0:50