问题标签 [postal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - 是否可以从单独的项目运行 mvc 邮件程序
我目前正在与 WebApi 一起运行 MVC 网站,并且正在考虑构建电子邮件功能。
我有非常轻量级的控制器将大部分逻辑抽象到服务层,因为它是一个相当大的应用程序,我希望它的大部分可在 MVC 和 WebApi 之间重用。
这让我无法使用MVCMailer,因为所有示例都在 Web 项目中运行。如果编写了使用 WebAPI 的手机应用程序,它将无法使用电子邮件功能。
我想知道是否可以从它自己的项目中运行它?这是对我正在尝试做的事情的非常粗略的描述。
我可以将MVCMailer或ActionMailer抽象为技术上两者.Web
都是.WebApi
MVC4 项目吗?
如果没有,那么我将只使用Actionmailer.net 的独立版本或Postal中的等效版本,尽管功能有所减少。
编辑:更多信息
再想一想,这似乎很棘手,因为我必须为电子邮件视图做一些花哨的复制逻辑,以便它们可以自动与 mvc 和 webapi 网站一起部署。
也许最好将电子邮件与其自己的网站分开,并让服务层发出网络请求以发送电子邮件并将其适当地抽象出来。
我想这样我就可以将电子邮件部署在一台服务器上,而不必在所有服务器上设置 smtp。欢迎评论
相关问题
c# - RuntimeBinderException,Razor 未在子文件夹中拾取 _ViewStart
我们有一个站点,其中基于 dbconfig 设置布局
一切正常,除非我们将一个电子邮件文件夹添加到视图中(用于邮政Nuget 包),并使用它自己的 ViewStart 在
其中包含
它用于以这样的代码发送 HTML 格式的电子邮件
但是,我在这条线上遇到了一个例外
关于它为什么从 ~/Views 而不是从 ~/Views/Emails 获取 ViewStart 的任何指示?
asp.net-mvc - 单元测试 - 引用 3.0.0.0 MVC,版本实际上是 4.0.0.0
我正在使用单元测试(Nunit)测试 SendEmail:
SendEmail 使用邮政。运行测试时出现以下错误。当我调试时,它甚至在我的 SendEmail 中的第一个调试点之前就抛出了错误。
我将以下内容添加到 app.config 并搜索我的代码以查看它是否曾经引用 3.0.0.0,但它没有。
我想知道MVC错误版本是否可能(以某种方式)掩盖了另一条错误消息?
c# - 页面超时发送电子邮件,即使发送了电子邮件
这个问题让我很困惑。这个问题可能需要迁移到服务器故障,但是有一个编程组件,所以我想我会从那里开始。此外,我们的基础架构团队坚信一切都很好,但这并不总是意味着什么。
无论如何,我有一个简单的 GET-POST-Redirect 操作,它使用 Postal nuget 包发送两封单独的电子邮件,然后重定向到成功页面——非常基本的东西。该操作是异步的,我使用await email.SendAsync()
的是 Postal API。
提交表单后,第一封电子邮件会立即进入我的收件箱,但代码会在该await email.SendAsync()
行挂起 15-20 秒,然后再转到下一行(在调试器中确认)。然后,它开始发送第二封电子邮件,它再次立即进入我的收件箱,并且无论是否成功发送,代码都会再次挂在该行上,持续 15-20 秒,然后再转到带有重定向的行。在生产中,发送电子邮件后的这种延迟,结合两封电子邮件,会导致连接在重定向响应发送之前重置。当然,我可以只延长页面超时时间,但这并不能真正解决问题,因为用户在得到响应之前仍然会延迟一分钟。
我也尝试过使用 just 同步发送电子邮件email.Send()
,但会发生相同的行为。我查看了 Postal 的源代码,虽然它围绕 SMTPClient 进行了一些自定义包装以发送异步电子邮件,但实际上除了使用同步Send
方法发送标准的旧 C# 电子邮件之外别无他法。
它也没有绑定到运行站点的服务器,因为我可以在生产和本地调试中看到相同的行为(尽管都连接到同一个生产 Exchange 服务器)。
它的行为就像它在等待 Exchange 服务器发送某种“完成”响应,但根据我对 SMTP 的了解,它不是那样工作的。它应该只是将电子邮件发送到 SMTP 服务器并愉快地继续,相信 SMTP 服务器实际上会做它应该做的事情。
任何想法都将不胜感激,因为我什至不确定此时如何继续调试它。我还能测试或尝试什么?
更新
感谢@MichaelEvanchik 建议试用 Wireshark,我能够清楚地看到 Exchange 服务器实际上导致了 30 秒的延迟。它接收到要发送的电子邮件的最后一位,然后在 30 秒后最终以“成功排队等待发送”响应客户端。正是在这一点上,客户端最终退出并且代码恢复。所以,我把它踢回基础设施。
更新#2
因此,显然连接器实际上有 30 秒的延迟,以确认电子邮件已真正发送,而不仅仅是排队等待发送。就个人而言,我认为这首先违背了“排队等待交付”的观点,但无论如何,我不需要确认它实际上已发送,只需确认它已被 Exchange 服务器接收,因此基础设施正在移除延误。
asp.net-mvc-5 - 使用 Glimpse 和 Postal 时抛出异常
我刚开始在我的 MVC5 项目中使用 Glimpse,当我使用 Postal 发送电子邮件而不禁用 Glimpse 时遇到了问题。我已经能够将其缩小到两个软件包的问题 - 如果 Glimpse cookie 没有打开,它就不会发生。
在 Fiddler 中,我检查了两者之间的区别。当它抛出异常时,cookie是
当它工作时(瞥见关闭)有两个饼干
我得到的例外是
我创建了一个快速操作来测试它。控制器代码为:
asp.net-mvc - Postal 和 Unity 的依赖注入异常
在我的 ASP.NET Web MVC 控制器 (v5.1) 中,我想切换到在Postal (v0.9.1) 上使用IEMailService,所以我在控制器上执行了以下操作:
我的 Unity (v3.0) 容器设置:
但是我得到了这个异常,我对此毫无意义。
Unity实际上想告诉我什么?
堆栈跟踪:
asp.net-mvc-4 - MVC 4 Email.Send 错误
我正在使用 Postal 向新注册用户发送确认电子邮件。但是当它点击 email.send(); 时它就会陷入困境。这是我的控制器代码:
有谁知道这个问题?
asp.net-mvc-4 - 使用 Postal mail MVC 4 Razor Mobile View Engine 时生成错误
我正在使用邮政邮件发送订单确认。这是一个 MVC4 项目。该代码正在正确发送电子邮件确认。
最近,我在项目中添加了 MVC 移动版。一切正常 - 除了当用户在移动设备上发送确认电子邮件时。这是订单确认类:
然后它被这样调用:
在我的 Global.asax.cs 文件中,我检测移动设备,并插入显示模式,如下所示:
我收到的错误消息是通用的“对象引用未设置为对象的实例”。我在下面放了堆栈跟踪,以及生成错误代码时的图像。
似乎,当 postal 生成视图时,它会点击 global.asax 文件中的 application_start,并且因为 useragent 属性为空 - 它会生成错误。我尝试在 application_start 过程中的特定代码周围放置一个 try catch 块——但这不起作用。
我需要帮助如何告诉 MVC 或 Postal 不要打扰显示模式。有什么建议么?
asp.net-mvc - 使用带有布局的 Postal MVC 将标头解析为邮件正文
似乎当我使用 Postal 使用 Layout 发送电子邮件时,标头没有被解析并包含在邮件消息中。
视图/电子邮件/_ViewStart.cshtml
视图/电子邮件/_EmailLayout.cshtml
视图/电子邮件/ResetPassword.cshtml
视图/电子邮件/ResetPassword.html.cshtml
当我收到邮件时,所有标题 To、From、Subject 和 Views 都包含在正文中。
任何人都知道如何正确地做到这一点?
更新(感谢安德鲁),这有效:
视图/电子邮件/_EmailLayout.cshtml
视图/电子邮件/ResetPassword.cshtml
视图/电子邮件/ResetPassword.html.cshtml
asp.net-mvc - Postal for ASP MVC 4 想让我使用 MVC 5
我刚刚使用 NuGet 为 ASP MVC 安装了 postal,并在设置一些代码以发送电子邮件后尝试编译它。我收到一条错误消息,告诉我需要将 MVC 5.1 版用于 Postal 0.9.2 版。我的 MVC 项目是使用 .net 4.5 的 MVC 4 项目类型,我在 VS 2013 Pro 中。有没有办法以不同的方式配置它以使其工作?
这是我的错误信息
错误 2 程序集 'Postal,Version=0.9.2.0,Culture=neutral,PublicKeyToken=45719375b8b4d528' 使用 'System.Web.Mvc,Version=5.1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35',其版本高于引用的程序集'System.Web.Mvc,版本 = 4.0.0.0,文化 = 中性,PublicKeyToken = 31bf3856ad364e35' c:\TFS\OULUVU\OULUVU\packages\postal.0.9.2\lib\net40\Postal.dll OULUVU
有一个警告说
警告 1 发现同一依赖程序集的不同版本之间存在无法解决的冲突。当日志详细程度设置为详细时,这些引用冲突会列在构建日志中。欧鲁武