从 GoDaddy 托管的 ASP.NET MVC 应用程序发送邮件消息时出现问题

2024-04-17

我在 GoDaddy 托管的 MVC Web 应用程序上有一个表单,用户可以填写该表单并发送给我们的办公室。我目前正在使用 Gmail 帐户和 GoDaddy 电子邮件帐户(链接到我的托管空间)对其进行测试。使用 Gmail 代码后,电子邮件将从我的本地主机正常发送,但当我将其发布到网络时,出现以下错误:

请求类型为“System.Net.Mail.SmtpPermission”的权限, 系统,版本=2.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089' 失败。

这是代码(借用这个帖子 https://stackoverflow.com/questions/32260/sending-email-in-net-through-gmail/32336#32336)我正在使用,凭据已更改且密码已删除:

var fromAddress = new MailAddress("[email protected] /cdn-cgi/l/email-protection", "FEA Drone");
var toAddress = new MailAddress("[email protected] /cdn-cgi/l/email-protection", "ImproveIt Home Services");
const string fromPassword = "<removed>";
var subject = string.Format("Energy Evaluation Request for {0} {1}", model.FirstName, model.LastName);
var body = MailBody(results);

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}    

然后,我尝试使用我为此特定表单设置的 GoDaddy 电子邮件,并再次在本地发送。然而,当这个上传时,它只是超时,而不是给我任何有用的信息。这是该代码:

var fromAddress = new MailAddress("[email protected] /cdn-cgi/l/email-protection", "FEA Drone");
var toAddress = new MailAddress("[email protected] /cdn-cgi/l/email-protection", "ImproveIt! Home Services");
const string fromPassword = "<removed>";
var client = new SmtpClient
{
    Host = "relay-hosting.secureserver.net",
    Port = 25,
    EnableSsl = false,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Timeout = 20000,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};

using (var msg = new MailMessage(fromAddress, toAddress)
{
    Subject = string.Format("Energy Evaluation Request for {0} {1}", model.FirstName, model.LastName),
    IsBodyHtml = false,
    Body = MailBody(results)
})
{
    client.Send(msg);
}

本来我有smtpout.secureserver.net对于我的 GoDaddy 主机,但我发现本文 http://help.godaddy.com/article/955我需要将其更改为relay-hosting.secureserver.net。使用更新的主机信息,脚本将运行,但邮件消息不会到达目标电子邮件收件箱(或垃圾邮件箱)。

Edit

使用Maxim的代码,我似乎已经得到了一个“正常运行”的版本。该电子邮件不会立即出现在目标收件箱中,而是在大约 15 分钟后出现。遗憾的是,在程序化电子邮件方面,GoDaddy 似乎是一个巨大的 PITA。

这是我得到的:

var emailmessage = new System.Web.Mail.MailMessage()
{
    Subject = subject,
    Body = body,
    From = fromAddress.Address,
    To = toAddress.Address,
    BodyFormat = MailFormat.Text,
    Priority = System.Web.Mail.MailPriority.High
};

SmtpMail.SmtpServer = "relay-hosting.secureserver.net";
SmtpMail.Send(emailmessage);

再次感谢您的帮助,我希望我能弄清楚如何让 GoDaddy 更好地合作。如果可以的话,我会回复更新。


我也在 GoDaddy 上托管了一些 ASP.NET MVC 应用程序,它们会发送电子邮件。不幸的是,GoDaddy 电子邮件政策有些糟糕:

首先,你必须使用relay-hosting.secureserver.net- 您不能使用外部 SMTP 服务器,例如 Gmail。

第二,relay-hosting通常非常非常慢。根据我的经验,有些电子邮件会传播90分钟被发送出去,同时其他的根本就没有交付.

我已经就这个问题多次通过电子邮件与 GoDaddy 支持人员联系,但他们尚未解决巨大的等待时间/问题或允许外部 SMTP 服务器。


至于消息未送达的原因,您应该尝试多次运行该脚本以确保没有发生异常情况。如果仍然不起作用,这是我的邮件代码:

var emailmessage = new System.Web.Mail.MailMessage()
                                   {
                                       Subject = "Subject",
                                       Body = "Body",
                                       From = "[email protected] /cdn-cgi/l/email-protection",
                                       To = "[email protected] /cdn-cgi/l/email-protection",
                                       BodyFormat = MailFormat.Text,
                                       Priority = MailPriority.High
                                   };

SmtpMail.SmtpServer = "relay-hosting.secureserver.net";
SmtpMail.Send(emailmessage);

唯一不同的是(据我所知)您正在尝试向 SMTP 服务器提供凭据。实际上,relay-hosting.secureserver.net不需要任何凭证,但只有当它检测到邮件是从 GoDaddy 服务器发送时才会发送电子邮件。这可能会解决您的问题!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 GoDaddy 托管的 ASP.NET MVC 应用程序发送邮件消息时出现问题 的相关文章

随机推荐

  • 对于依赖于时间的大型数据集,命名表 september_2010 是否可接受且有效?

    我每天需要存储大约 73 200 条记录 由 3 个数据点组成 id 日期和整数 我团队的一些成员建议使用月份作为表名称 september 2010 创建表 而其他人则建议使用一个包含大量数据的表 关于如何处理如此大量的数据有什么建议吗
  • 如何更新 Prim 算法堆中的元素优先级?

    我正在研究Prim算法 代码中有一部分穿过切割的下一个顶点将进入属于MST 在这样做的同时 我们还必须 更新另一组中与离开顶点相邻的所有顶点 这是来自的快照CLRS 有趣的部分在于第 1 行 11 但由于我们在这里使用堆 因此我们只能访问最
  • C++14 是否定义了 unsigned int 填充位上按位运算符的行为?

    C 标准 If a C 14 http www open std org jtc1 sc22 wg21 docs papers 2013 n3797 pdf实现包括在底层字节中填充位unsigned int 标准是否指定是否不得对填充位执行
  • 在没有 Rails 的情况下调用 ERB:未定义的方法“raw”

    我正在使用ERB引擎 http www ruby doc org stdlib 1 9 2 libdoc erb rdoc ERB html生成我的 Rails 网站页面的离线 HTML 版本 当 Rails 显示时 该页面显示得很好 但我
  • 将 Rails 与 Paperclip 和 SWFUpload 结合使用

    我对用户模型进行了基本的 Rails 应用程序测试 该模型具有用回形针处理的照片字段 我创建了能够创建 编辑用户的视图 并且照片上传运行良好 h1 Editing user h1 p br p p br p
  • if..else 或 Select..case 哪个更快?

    我有三个条件可以比较 以下两者哪一个更快 请指出我 谢谢大家 If var 1 then Command for updating database ElseIf var 2 then Command for updating databa
  • 如何查找列表中句子列表中每个单词的引理和频率计数?

    我想使用 WordNet Lemmatizer 找出引理 并且还需要计算每个词频 我收到以下错误 轨迹如下 类型错误 不可散列的类型 列表 注 语料 库可在nltk包装本身 到目前为止我已经尝试过如下 import nltk re impo
  • 如何在 Komodo IDE 中设置断点?

    我已经安装了科莫多集成开发环境 https www activestate com products komodo ide 我想知道在哪里 如何设置断点 以便顶行的第 9 个符号 gt 明白了吗 EDIT 单击代码左侧装订线中的行号
  • Scala 中的函数式反应式编程 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话
  • Ant:将compilerarg传递给javac

    我有可以编译的 ant 脚本
  • 如何让 gdb 保存命令历史记录?

    我该如何设置gdb这样它就可以保存命令历史记录 当开始新的gdb会话 我想使用向上箭头键来访问之前会话的命令 简短回答 mkdir p config gdb echo set history save on gt gt config gdb
  • 如何使用 UIPath 中的“关闭选项卡”活动关闭子选项卡

    UiPath 是closing the 主窗口而不是子窗口 我在中定义了一个浏览器变量attach browser活动并将该浏览器变量传递给Close tab活动 Chrome 主窗口仍处于关闭状态 另附上项目 xaml 文件https d
  • iOS11 AppIcon无法更改

    Xcode 9 测试版 6 iOS 11 测试版 10 我想要使 用自定义应用程序图标打包应用程序 因此我尝试替换 DerivedData Users XXX Library Developer Xcode DerivedData proj
  • Pyparsing 分隔列表仅返回第一个元素

    这是我的代码 l 1 3E 2 2 5E 1 parser Word alphanums grammar delimitedList parser delim t print grammar parseString l 它返回 1 3E 2
  • iOS:从 url 加载图像

    我需要从 url 加载图像并将其设置在 UIImageView 中 问题是我不知道图像的确切大小 那么如何才能正确显示图像呢 只需使用 UIImage 的 size 属性即可 例如 NSURL url NSURL URLWithString
  • 将带有ajax请求的数组发送到php

    我像这样创建了数组 9 ques 5 19 ques 4 现在我想将它从 JS 发送到 PHP 但我没有得到正确的结果 我的JS代码是 button click function e e preventDefault ajax type p
  • nameof 和 typeof 的区别

    如果我错了请纠正我 但是做类似的事情 var typeOfName typeof Foo Name and var nameOfName nameof Foo 应该给你完全相同的输出 根据该消息来源 可以理解的原因之一是 https msd
  • 使用 RPATH 但不使用 RUNPATH?

    这一页 https web archive org web 20120418232524 http labs qt nokia com 2011 10 28 rpath and runpath 说关于图书馆检索的顺序ld so Unless
  • 覆盖特定模型的 Django 管理 URL?

    首先是一些背景 我有一个Event模型具有各种event types 我想将这些事件类型之一 电影 分解到它自己的管理中 我已经具备了基本功能 继承自的代理模型Event named Film 该代理模型的自定义管理器 仅将其过滤为 电影
  • 从 GoDaddy 托管的 ASP.NET MVC 应用程序发送邮件消息时出现问题

    我在 GoDaddy 托管的 MVC Web 应用程序上有一个表单 用户可以填写该表单并发送给我们的办公室 我目前正在使用 Gmail 帐户和 GoDaddy 电子邮件帐户 链接到我的托管空间 对其进行测试 使用 Gmail 代码后 电子邮