You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Web Form本地正常,部署至服务器后无法发送邮件求助

ASP.NET Web Form邮件提交本地正常,服务器(Prositehosting)无法发送问题排查

我开发了一个Web Form,提交时需要将用户信息发送到指定邮箱。该功能在本地运行完全正常,但上传至Prositehosting服务器后无法使用,且我没有服务器配置权限。想确认是服务器设置阻止了邮件发送,还是代码存在缺失?


相关代码

default.aspx(仅保留单个输入框用于测试)

<div id="contactForm">
    <asp:TextBox ID="senderNameTextBox" placeholder="Name*" runat="server" Style="width: 250px;" ClientIDMode="Static" />
    <asp:Button ID="Button1" type="button" Text="Submit  →" runat="server" OnClick="sendMessage_Click"
        Style="" />
</div>

default.aspx.cs(服务器控制台无异常记录,但未收到邮件,邮箱已隐去)

protected void sendMessage_Click(object sender, EventArgs e)
{
    try
    {
        MailMessage mail = new MailMessage();
        SmtpClient smtpClient = new SmtpClient();

        mail.From = new MailAddress("example@email.co.uk");
        mail.To.Add("example@email.co.uk");
        mail.CC.Add("example@gmail.com");
        mail.Subject = "Customer - MedicalAuditsSoftware Website";
        mail.Priority = MailPriority.Normal;

        mail.Body = "<html><body>"
            + "Sender's Name: " + Server.HtmlEncode(senderNameTextBox.Text) +
            "<br><br>";
        mail.IsBodyHtml = true;
        smtpClient.Send(mail);
        Console.WriteLine("Email sent successfully.");
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error sending email: " + ex.Message);
        throw;
    }
}

web.config中的SMTP配置段

<smtp from="example@email.co.uk">
    <network host="smtp.email.co.uk"
             port="587"
             userName="example@email.co.uk"
             password="SamplePassword"
             enableSsl="true"/>
</smtp>

已执行的测试

  • 尝试切换使用端口465和993
  • 配置控制台错误记录(未捕获到异常输出)
  • 注释web.config中的SMTP详情(本地正常,服务器端无效)
  • 将SMTP配置全部移入web.config而非代码硬编码(本地正常,服务器端无效)

排查方向

  1. 服务器限制:Prositehosting这类共享主机通常会限制外部SMTP端口(如587、465),或强制使用自身提供的内部SMTP服务器,防止垃圾邮件发送。
  2. 日志盲区:Console.WriteLine在服务器环境下不会输出到可查看的控制台,实际可能存在异常但未被捕获记录。需改用服务器日志记录方式(如写入文本文件或使用Trace.WriteLine)才能获取真实错误信息。
  3. SMTP连接问题:服务器防火墙或代理可能阻断了与外部SMTP服务器(smtp.email.co.uk)的连接,导致认证或发送请求失败。
  4. 域名验证问题:部分SMTP服务器要求发件人域名与网站域名一致,或需配置SPF/DKIM记录,否则邮件会被拦截。

建议操作

  • 联系Prositehosting客服,确认允许的SMTP发送规则,是否必须使用他们提供的SMTP地址、端口及认证信息。
  • 修改代码中的日志逻辑,将异常信息写入服务器可访问的日志文件,排查真实错误原因。
  • 替换为Prositehosting官方提供的SMTP配置进行测试。

内容的提问来源于stack exchange,提问作者user24932386

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 13:33:35