使用 smtp SendAsync 发送邮件

2023-12-11

这就是当我需要发送电子邮件时给我带来错误的方式。但此后给我的错误是这样的:

此时无法启动异步操作。异步 操作只能在异步处理程序中启动,或者 模块或页面生命周期中的某些事件期间。如果这 执行Page时发生异常,请确保该Page是 标记为 。此异常也可能表明 尝试调用“async void”方法,该方法通常不受支持 在 ASP.NET 请求处理中。相反,异步方法 应该返回一个任务,并且调用者应该等待它。

我从 MVC 开始就积累了经验,并使用类来跟踪页面的 ie 区域。我使用 SendAsync 的原因正是因为它发送电子邮件等的速度更快一些。

仅当我尝试向用户发送电子邮件时才会发生此错误。

public static void NewPassword(string mail, string name, string password)
    {
        MailDefinition oMailDefinition = new MailDefinition();
        oMailDefinition.BodyFileName = "~/MailList/emailskabelon/NewPassword.html";
        oMailDefinition.From = FromMail;

        Dictionary<string, string> oReplacements = new Dictionary<string, string>();
        oReplacements.Add("<<navn>>", name);
        oReplacements.Add("<<password>>", password);

        System.Net.Mail.MailMessage oMailMessage = oMailDefinition.CreateMailMessage(mail, oReplacements, new LiteralControl());
        oMailMessage.Subject = NewpasswordTitle + WebsiteName;
        oMailMessage.IsBodyHtml = true;

        SmtpClient smtp = new SmtpClient(AzureApi);
        System.Net.NetworkCredential netcred = new System.Net.NetworkCredential(AzureName, AzurePassword);
        smtp.UseDefaultCredentials = false;
        smtp.EnableSsl = true;

        smtp.Credentials = netcred;
        smtp.Port = Convert.ToInt32("25");
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

        using (var smtpClient = new SmtpClient())
        {
            smtp.SendAsync(oMailMessage, null);
        }
    }

我尝试这样做:

public static async NewPassword(string mail, string name, string password)
        {
            ....
            using (var smtpClient = new SmtpClient())
            {
                await smtp.SendAsync(oMailMessage, null);
            }

我在这里看到:https://stackoverflow.com/a/35212320/7391454


将您的方法更改为:

public async Task SendEmail(string toEmailAddress, string emailSubject, string emailMessage)
{
var message = new MailMessage();
message.To.Add(toEmailAddress);

message.Subject = emailSubject;
message.Body = emailMessage;

using (var smtpClient = new SmtpClient())
{
    await smtpClient.SendMailAsync(message);
}
}

并称其为:

var task = SendEmail(toEmailAddress, emailSubject, emailMessage);
var result = task.WaitAndUnwrapException();

看看这里在C#中异步发送电子邮件?和这里C#中如何从同步方法调用异步方法?

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

使用 smtp SendAsync 发送邮件 的相关文章

  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 如何将隐藏字段从一个页面传递到另一页面?

    我有一个 Net 类库 我想从一次代码隐藏页面传递一个隐藏变量 并在另一个代码隐藏页面中获取它 请注意 我没有任何可以使用表单标签和 get post 方法的设计页面 aspx 页面 我们应该怎么做 注意 我想使用隐藏字段将值从一页传递到另
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 为什么我的 ASP.NET MVC 应用程序在单个会话中多次触发 Session_Start?

    我们有一个 MVC NET 应用程序在重新启动时遇到致命错误 在 Session Start 事件处理程序中 我们将会话 id 添加到字典中 在 Session End 处理程序中 我们将其删除 考虑以下请求序列 获取主页 mvc 获取ma
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • php向多个收件人发送邮件

    我可以通过在邮件程序中定义 id 来将电子邮件发送到一个电子邮件 id 但是当用户在表单中键入 消息和电子邮件 id 时 我无法理解如何发送到多个收件人 例如 我正在显示一个带有两个文本区域的表单 一个用于电子邮件 ID 一个用于自定义消息
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke

随机推荐

  • 从 HTA 应用程序打开程序

    我正在尝试创建一个 HTA 应用程序 它可以在计算机上本地打开程序 exe bat 等 这将在 Kiosk PC 上使用 用户无法访问桌面等 但在寻找有效的脚本时遇到一些问题 现在我正在使用这个脚本 这就是我的链接的样子 a href a
  • Collectors.reducing 方法在用作 Collectors.partitionBy 的下游时更新相同的标识

    我有一个类似于下面的课程MyObject public class MyObject private String key not unique multiple objects can have the same key private
  • 如何使用函数式编程正确替换“扩展”?

    我正在研究如何在 javascript 中应用函数式编程 并且我正在尝试避免使用class关键词 我不喜欢仅仅为了遵循某些范例而采取极端措施 但我很好奇是否可以在不使用类的情况下编写好的代码 到目前为止 我主要使用函数取得了成功 但有一种情
  • C - printf() 不工作,但 put() 工作正常

    void read class information head beginning int scale type puts hello printf hello 我有一个由 main 调用的简单函数 并且 stdout 的 printf
  • 密码验证正则表达式

    我正在尝试获取一个执行以下操作的正则表达式 确保没有空格字符 最小长度为 8 makes sure there is at least 一个非字母字符 一个大写字符 一个小写字符 我发现这个正则表达式 a zA Z a z A Z s 8
  • 如何高效地比较Set? [复制]

    这个问题在这里已经有答案了 给定两个集合 如何在 Java 中有效地比较它们 a 将它们保留为Lists 对它们进行排序并比较 Comparable b 将它们保留为Set并比较hashCode集合的 背景 需要进行很多比较 集合很小 通常
  • 从 ViewPager 获取焦点视图

    我使用 ViewPager 通过左 右滑动来切换视图 ViewPager 需要一个适配器 所以我构建了这个 public class ListViewPagerAdapter extends PagerAdapter protected s
  • 有希望的 API 回调 - 如何正确解决或拒绝

    我读过类似的文章 但没有一篇文章很明确如何正确地做到这一点 我了解 Promise 以及它们通常是如何通过成功和失败监听器创建的 等待触发解决或拒绝 我不明白的是当我调用以成功和失败回调作为参数的 API 方法 如何确定正在触发哪个回调 以
  • 在 C# 中将位图转换为布尔数组的快速方法?

    我正在制作一个 XNA 应用程序 每秒从网络摄像头捕获屏幕截图 4 次 然后当像素颜色红色低于某个阈值时尝试将其转换为布尔数组 当我将其转换为 Texture2D 时 它不会滞后 但当我尝试获取单个像素时 即使网络摄像头分辨率为 176x1
  • 为什么长度为 1 的元组的元组实际上不是元组,除非我添加逗号?

    给定一个元组的元组T a b 和一个单独的元组t1 a b 为什么 t1 in T 返回假 更新 来自 Ipython In 22 T a b In 23 t1 a b In 24 t1 in T Out 24 False 那么如何检查一个
  • 如何使用 Google Apps 脚本读取日历事件重复设置

    我似乎无法找出如何读取重复设置的方法CalendarEventSeries使用 Google Apps 脚本 有一个setRecurrence方法 我正在寻找类似的东西getRecurrence希望它会返回EventRecurrence表示
  • 在 Ubuntu 18.04 上使用 Python3.6 安装底图

    我一直在努力得到Basemap在过去的几个小时内已启动并运行 下列的本教程 I run conda install basemap in my venv在 Pycharm 上 安装按计划进行 我在术语中收到一条消息 指出已经安装了 base
  • 如何在flutter上使用cookie发出http请求?

    我想在正确处理 cookie 的同时向远程服务器发出 http 请求 例如 存储服务器发送的 cookie 并在发出后续请求时发送这些 cookie 最好保留所有 cookie 对于我正在使用的http请求 static Future
  • UserControl 的相对源绑定

    我创建了一个UserControl用于在我的应用程序中显示超链接 这个的标记UserControl好像
  • PayPal Orders V2 未处理批准 url

    根据PayPal订单API作为此处的文档 我们必须首先创建订单 然后从响应中 我们必须复制批准 url 并在浏览器中运行 这将打开 PayPal 页面 买家将批准该请求 此后应发出捕获请求 问题详情 我有以下使用 PayPal API 创建
  • 使 div 表现得像图像

    如果 div 的背景是图像 如何使 div 的大小调整属性的行为与图像标签的行为完全相同 这个想法是复制图像标签在此代码片段中的行为方式 div background color 2DBCFF text align center box s
  • DocuSign Java Rest Api - 结合锚标记自定义文件和 PDF 表单字段转换(复合模板)

    在我的应用程序中 我有一个 PDF 包 我将其合并并发送给 DocuSign 使用 SignHere 和 Initial here AnchorTags 可以完美地完成此操作 但是 我现在需要包含某些需要用户输入字段的 PDF 例如 W 9
  • Emacs Python:Echoing、Hooks 和 Org-mode

    基于这个问题我发现了如何修复 emacs 中 python shell 的回显问题 我想要做的是将其添加到我的 emacs 文件中 以便它会自动发生 defun python startup setq comint process echo
  • Jquery 移动日期选择器未显示在弹出字段中

    I used jtsage jquery mobile date picker 我想在单击弹出窗口内的文本时显示日期选择器 但弹出窗口背面显示的日期选择器我想在弹出窗口前面显示日期选择器 我的代码就像 div a href datepop
  • 使用 smtp SendAsync 发送邮件

    这就是当我需要发送电子邮件时给我带来错误的方式 但此后给我的错误是这样的 此时无法启动异步操作 异步 操作只能在异步处理程序中启动 或者 模块或页面生命周期中的某些事件期间 如果这 执行Page时发生异常 请确保该Page是 标记为 此异常