.net Core Mailkit 从数组发送附件

2023-12-12

我正在测试 .Net Core MVC,它不支持 System.Net.Mail,我发现的唯一替代方案是 Mailkit,效果很好,但无法弄清楚如何发送我以二进制形式存储在数据库中的附件。我在 MVC 5 中使用了以下内容:

     var mail = new MailMessage();
     mail.Attachments.Add(new Attachment(new MemoryStream(attachment), 
     attachmentName, attachmentType));

我怎样才能在 MailKit 中做到这一点?


您需要创建一个构建器,然后向其中添加附件,附件可以是 IFromFile 或二进制字符串。 希望这可以帮助。

public async void SendEmail(string mailTo, string mailFrom, string cc, string subject, string message)
{
    var emailMessage = new MimeMessage();
    if (cc != null)
    {
        emailMessage.Cc.Add(new MailboxAddress(cc)); 
    }

    emailMessage.From.Add(new MailboxAddress("SenderName", "UserName"));
    emailMessage.To.Add(new MailboxAddress("mailTo"));
    emailMessage.Subject = subject;
    var builder = new BodyBuilder { TextBody = message };

    //Fetch the attachments from db
    //considering one or more attachments
    if (attachments != null)
    {
        foreach (var attachment in attachments.ToList())
        {
            builder.Attachments.Add(attachmentName, attachment, ContentType.Parse(attachmentType));
        }
    }
    emailMessage.Body = builder.ToMessageBody();
    using (var client = new SmtpClient())
    {
        var credentials = new NetworkCredential
        {
            UserName = "USERNAME",
            Password = "PASSWORD"
        };
        await client.AuthenticateAsync(credentials);
        await client.ConnectAsync("smtp.gmail.com", 587).ConfigureAwait(false);
        await client.SendAsync(emailMessage).ConfigureAwait(false);
        await client.DisconnectAsync(true).ConfigureAwait(false);              
    }   }      
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.net Core Mailkit 从数组发送附件 的相关文章

  • 使用具有现有访问令牌的 Google API .NET 客户端

    用例如下 移动应用程序正在通过 Google 对用户进行身份验证 并且在某些时候 我们需要将用户的视频发布到他的 YouTube 帐户 出于实际原因 实际发布应该由后端完成 已经存储在那里的大文件 由于用户已经通过应用程序的身份验证 因此应
  • C#动态支持吗?

    看完之后这个帖子 https stackoverflow com questions 2674906 when should one use dynamic keyword in c sharp 4 0k和链接 我还有 2 个问题 问题 1
  • 如何在 Android NDK 中创建新的 NativeWindow 而无需 Android 操作系统源代码?

    我想编译一个 Android OpenGL 控制台应用程序 您可以直接从控制台启动 Android x86 运行 或者从 Android x86 GUI 内的 Android 终端应用程序运行 这个帖子 如何在 Android NDK 中创
  • 32 位应用程序的特征最大矩阵大小

    所以 我正在寻找Eigen http eigen tuxfamily org index php title Main Page当我尝试声明大于 10000x10000 的矩阵时 包崩溃 我需要声明一个像这样的矩阵 可靠地大约有 13000
  • 为什么要序列化对象需要 Serialized 属性

    根据我的理解 SerializedAttribute 不提供编译时检查 因为它都是在运行时完成的 如果是这样 那么为什么需要将类标记为可序列化呢 难道序列化器不能尝试序列化一个对象然后失败吗 这不就是它现在所做的吗 当某些东西被标记时 它会
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • 一个模型可以通过多个编辑器模板传递吗?

    我尝试使用编辑器模板显示视图模型 该模板在应用基本对象编辑器模板之前将模型包装在字段集中 My view model Mvc3VanillaApplication Models ContactModel using Html BeginFo
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我

随机推荐

  • 异步 Action api 如何在 scala 的 play 框架 2.2.x 中工作?

    我试图创建异步 api 但响应显示顺序执行 完成步骤 在 chrome 的两个选项卡中打开 url 并且快速地一一击打他们 网址前 localhost 9000 getStar 但执行日志是这样的 info play Listening f
  • 识别R中的时间

    我正在 R 中处理一个具有如下时间变量的数据集 Time data frame X1 c 930 1130 914 1615 X1 的前两位表示小时 后两位表示分钟 我想让 R 将其识别为时间变量 我尝试使用 lubridate hm 函数
  • 如何在不使用 CTE 的情况下从日期范围创建日期列表

    以下链接解释了如何将日期范围转换为日期列表 我使用了这种方法 它工作正常 但查询没有执行 我使用 Maxrecursion 0 来无限 http blog justinstolle com sql turn a date range int
  • NGINX:将非 www https 重定向到 https://www

    我遵循了这个答案https stackoverflow com a 28068250 3108268但它仅从 http 重定向到 https 将非 www 重定向到 www 但如果我访问我的网站https example com我收到 您的
  • 如何获取iPhone上的WIFI网关地址? [复制]

    这个问题在这里已经有答案了 我需要获取与 iPhone 连接的 wifi 网络的网关地址 有人知道如何得到它吗 只是为了澄清一下 我正在寻找此屏幕的信息 Thanks 添加到您的项目route h文件来自http opensource ap
  • ConcurrentHashMap 中的分段

    我是 Java 世界的新手 我在探索 ConcurrentHashMap API 时发现了这一点 static final int DEFAULT INITIAL CAPACITY 16 static final float DEFAULT
  • 如何使用 Plotly Express 创建子图 [重复]

    这个问题在这里已经有答案了 如果您像我一样 喜欢 Plotly Express 但是当您遇到 Express 返回的数字无法使用 make subplots 的问题时感到沮丧 因为 make subplots 接受的是迹线而不是数字 在这篇
  • 允许 RSU 在 Veins 中接收消息

    我正在尝试在 Veins OMNeT SUMO 上实现一个非常简单的场景 只需三辆车和一个独特的固定 RSU 但我是 Veins 的新手 尽管有大量文档 但我无法很好地移动 常见问题解答和教程我已经读过 我的起点是默认的 TraCI 场景演
  • 库中的 CodeIgniter 验证不接受回调

    我的问题如下 我正在编写一个登录库 该库有一个函数 validation 它使用验证库来验证数据 使用正常的验证方法可以正常工作 但使用回调函数就行不通 它不被称为 我这样称呼它 this gt CI gt form validation
  • 使用 Python 通过 SSH 从服务器读取文件

    我正在尝试使用 Python 中的 SSH 从服务器读取文件 我正在使用 Paramiko 进行连接 我可以连接到服务器并运行类似的命令cat filename并从服务器取回数据 但我尝试读取的某些文件大小约为 1 GB 或更大 如何使用P
  • 使用 WebApi 和 ODataQueryOptions 实现 $select

    我正在尝试使用 ODataQueryOptions 通过自定义 DAL 实现一些 OData 功能 我的 DAL 使用设计时生成的类型化数据表 通过拦截 ODataQueryOptions 的 SelectExpand 属性 我可以让 DA
  • 具有部分更新的实体框架验证

    我将 Entity Framework 5 0 与 DbContext 和 POCO 实体一起使用 有一个包含 3 个属性的简单实体 public class Record public int Id get set public stri
  • 为什么从 ResourceBundle.getBundle 检索字符串时出现无法理解的字符

    请告诉我如何解决这个问题 Locale locale new Locale language ResourceBundle messages ResourceBundle getBundle i18n messages locale utf
  • C++ 运算符歧义

    请原谅我 因为我对 C 相当陌生 但我在运算符歧义方面遇到了一些麻烦 我认为它是特定于编译器的 适用于在我的桌面上编译的代码 但是 它无法在我的笔记本电脑上编译 我想我知道出了什么问题 但我没有看到一个优雅的解决方法 如果我犯了一个明显的错
  • CMSampleBufferGetImageBuffer 中的内存泄漏

    我得到了一个UIImage from a CMSampleBufferRef每 N 个视频帧进行视频缓冲 例如 void imageFromVideoBuffer void UIImage image completion CMSample
  • 如何在具有 ARM CPU 的 WinRT 设备中部署 SQLite?

    我正在开发一个 C Window8 WinRT 应用程序 并且正在使用 SQLite NET 以及链接在文档底部的 sqlite3 dll https github com praeclarum sqlite net 我的项目在我的计算机上
  • 在 PHP 中以编程方式创建 Excel 图表

    您知道如何通过 PHP 以编程方式在 Excel 工作表中创建图表吗 我知道您可以调用 Excel COM 对象 但服务器正在 Linux 计算机上运行 我已经使用了优秀的 PHPExcel 库 但他们不提供创建图表的选项 Thanks 尝
  • 如何使用新的图形 API 在 FB 中显示扩展权限对话框?

    我之前使用旧的 REST API 在 Facebook 中显示权限对话框 现在 有了新的图形 API 我能做什么 我在 IFrame 应用程序中 我知道我可以作弊并在单独的窗口中弹出权限 FB login function response
  • 运行 php 脚本时 Jquery 函数说未定义

    我基本上是这样做的 所以当你点击一个按钮 投票 时 现在我有 客户 php
  • .net Core Mailkit 从数组发送附件

    我正在测试 Net Core MVC 它不支持 System Net Mail 我发现的唯一替代方案是 Mailkit 效果很好 但无法弄清楚如何发送我以二进制形式存储在数据库中的附件 我在 MVC 5 中使用了以下内容 var mail