c#-使用SmtpClient时如何保存电子邮件而不是发送电子邮件?

我正在使用SmtpClient发送带有附件的电子邮件。但是,对于某些批次,我们需要以某种方式保存MailMessage而不是发送它们。然后,我们正在考虑/希望将邮件手动上传到用户的草稿文件夹。

是否可以保存附件完整的这些消息(不可能,我想过)。 或者将邮件上传到用户帐户中的文件夹?

如果有人对此有任何经验,我将非常感谢您的帮助或指导。

user17510 asked 2020-07-14T02:17:56Z

5个解决方案

73 votes

在ASP.NET中进行测试时,我们将电子邮件保存到文件夹中,而不是通过电子邮件服务器发送。 也许您可以为批次更改这样的2965463549159159670784设置?

附加信息:

MSDN:元素(网络设置)

配置SmtpClient以将电子邮件拖放到磁盘上的文件夹中

Leah answered 2020-07-14T02:18:39Z

12 votes

以及其他答案的SpecifiedPickupDirectory信息,如果您想确保将电子邮件发送到相对于站点根目录的文件夹-方便在不知道路径的构建服务器上进行测试-您可以添加快速检查 在您的电子邮件发送代码中:

SmtpClient client = new SmtpClient();

...

// Add "~" support for pickupdirectories.

if (client.DeliveryMethod == SmtpDeliveryMethod.SpecifiedPickupDirectory && client.PickupDirectoryLocation.StartsWith("~"))

{

string root = AppDomain.CurrentDomain.BaseDirectory;

string pickupRoot = client.PickupDirectoryLocation.Replace("~/", root);

pickupRoot = pickupRoot.Replace("/",@"\");

client.PickupDirectoryLocation = pickupRoot;

}

并且您的测试将如下所示(确保您使用App_Data,以便IIS可以写入该文件夹):

// Arrange - get SitePath from AppDomain.Current.BaseDirectory + ..\

string pickupPath = Path.Combine(SitePath, "App_Data", "TempSmtp");

if (!Directory.Exists(pickupPath))

Directory.CreateDirectory(pickupPath);

foreach (string file in Directory.GetFiles(pickupPath, "*.eml"))

{

File.Delete(file);

}

// Act (send some emails)

// Assert

Assert.That(Directory.GetFiles(pickupPath, "*.eml").Count(), Is.EqualTo(1));

Chris S answered 2020-07-14T02:19:04Z

7 votes

这可以帮助-将Save()功能添加到Microsoft.Net.Mail.MailMessage

主要思想是对MailMessage进行扩展,通过反射来创建save方法。

Avram answered 2020-07-14T02:19:29Z

6 votes

您可以在System.Net.Mail/app.config文件中使用System.Web.Mail设置进行配置。

此外,这是一个链接,其中包含有关从System.Web.Mail迁移到System.Net.Mail的信息。

dotjoe answered 2020-07-14T02:19:53Z

1 votes

错误还需要在某些版本的框架中添加作为解决方法。 因此,完整的版本如下所示:

devjin answered 2020-07-14T02:20:15Z

c# 发送邮件保存服务器,c#-使用SmtpClient时如何保存电子邮件而不是发送电子邮件?...相关推荐

  1. 让您的数据库服务器与您对话:直接从SQL Agent Jobs发送电子邮件

    Recently, I was asked if I can write and run a specific query and have the results, (if any) emailed ...

  2. outlook发送邮件被服务器拒绝,Outlook不能发邮件是什么原因?

    Outlook功能很多,既方便又实用.与WEB邮箱相比,Outlook收发邮件有很大的优势.但是不少用户遇到了Outlook不能发送邮件的问题,遇到这样的问题,我们应该如何去解决它呢?现在小编就跟小编 ...

  3. r在服务器如何输出文件,在Rstudio服务器中编译Rmd时,.tex文件保存在哪里

    这可能听起来像一个愚蠢的问题,但我想知道当我从Rmd文件编译pdf文档时,保存的.tex文件在哪里,使用RStudio服务器. 我加了keep_tex选项,所以RMD的头看起来是这样的:在Rstudi ...

  4. iphone发送邮件html,iPhone使用smtp服务器发送电子邮件?

    在我的应用程序中,我能够使用smtp服务器发送电子邮件,因为我输入了正确的电子邮件ID和密码. 但当我输入我的Gmail或雅虎帐户详细信息时,我无法发送邮件. 因为我设置了relayHost = @& ...

  5. 转: SMTP 服务器无法识别在 Mac 2011 Outlook 中发送电子邮件时错误。错误 17092...

    在 Mac 2011 Outlook 中发送电子邮件时,您可能会收到下面的错误消息: 无法发送邮件. SMTP 服务器无法识别任何 Outlook 所支持的身份验证方法. 请尝试更改帐户设置中的 SM ...

  6. php生成excel到服务器,yii phpexcel自动生成文件保存到服务器上

    yii phpexcel自动生成文件保存到服务器上 最近再整一个报表任务,每天必须把表导出来按excel格式发送邮件给管理员,利用phpexcel把表保存到服务器上,然后再通过phpmailer发送就 ...

  7. 用户修改了信息jwt服务器怎么识别,django使用JWT保存用户登录信息

    什么是JWT? Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站 ...

  8. 微软邮箱服务器和端口,发送邮件的服务器的ip和端口

    发送邮件的服务器的ip和端口 内容精选 换一换 浏览器发送邮件:在使用浏览器登录邮箱时直接使用HTTP协议,其端口号默认为80,邮件服务器之间还是使用邮件发送协议:SMTP协议.通过浏览器发送邮件,则 ...

  9. 剑三怎么修改键位不保存服务器,剑网三保存服务器设置

    剑网三保存服务器设置 内容精选 换一换 反向解析主要应用于自建邮箱服务器,可以提高邮箱服务器IP地址和域名的信誉度.多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件,以逃避追踪. ...

最新文章

  1. java中类加载机制、类加载过程和类加载器层次
  2. poj3273---Monthly Expense
  3. Leet Code OJ 83. Remove Duplicates from Sorted List [Difficulty: Easy]
  4. FLEX组件AnyChart实例教程.
  5. android布局layout中的一些属性
  6. Node.js安装教程
  7. springmvc form中 commandName和modelAttribute的疑问
  8. 计算机如何连接网络扫描仪,windows系统下怎么共享扫描仪?
  9. J2ME 2D小游戏入门之旅(五) 实现爆炸效果、并加入道具导弹(转)
  10. 计算机常用英语单词1500
  11. python 中的 sys.stdin ,sys.stdout 和sys.stderr
  12. 华尔街借助软件甄别忠诚员工
  13. 隐患排查信息系统:实现安全隐患信息登记、评估、分类、处置、分析的流程化处理
  14. 原生js实现简化版幸运大转盘
  15. 电脑用的时间长了,如何给电脑提速?
  16. 全国高校人工智能高级研修班正式启动招募,互动式教学期待你的加入
  17. PHP中使用CURL之php curl详细解析和常见大坑
  18. win10中的wsappx进程(开机时,占用过多资源)
  19. 在word中自动生成目录
  20. 探访联通总部,展望美好前景

热门文章

  1. ln 软件链接目录时,当链接文件已经存在时,结果非预期
  2. 上海应届生落户政策计算机水平,上海直接可落户的应届生及2021具体评分标准...
  3. 中科红旗:开源的野心
  4. Consistency = Consensus?
  5. 为什么需要每年重新签发SSL证书?
  6. 敏捷开发之道 总结小记
  7. 目标检测的评价指标P,R,mAP
  8. 计算机桌面图片唐诗,唐诗高清壁纸
  9. Pandas 的melt的使用
  10. 7、基于STM32的智能风扇√★