c# - 如何检索电子邮件附件的内容,就像我 .ToString() 时显示的那样?
问题描述
我似乎找不到任何只返回此 e.ToString() 输出的编码部分的方法。
('e' 是一个带有 1 个单数电子邮件附件的 MimeEntity)
这是输出的样子:
X-MimeKit-Warning: Do NOT use ToString() to serialize entities! Use one of the WriteTo() methods instead!
Content-Type: image/png; name="px.png"
Content-Description: px.png
Content-Disposition: attachment; filename="px.png"; size=119;
creation-date="Tue, 06 Apr 2021 09:24:23 GMT";
modification-date="Tue, 06 Apr 2021 09:24:56 GMT"
Content-Transfer-Encoding: base64
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY/j//z8ABf4C/qc1gYQAAAAASUVO
RK5CYII=
我唯一要找的就是这部分:
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY/j//z8ABf4C/qc1gYQAAAAASUVO
RK5CYII=
解决方案
您可以使用接受布尔值的WriteTo
重载来指示您是否只需要 MimeEnity 的内容。
像这样
// 'e' is a MimeEntity
var ms = new MemoryStream();
e.WriteTo(ms, true); // no need to provide an cancellationtoken.
// ms will have only the content here
第三个参数cancellationtoken
默认为 null,因此您无需提供令牌实例。仅当您想在 WriteTo 操作完成之前优雅地结束它时,它才有意义。
推荐阅读
- python - 如何在python中捕获copytree的异常
- powershell - Powershell'Get-Date'不断停止工作
- c# - @Html.Action() 不可用
- vba - VBA SOLIDWORKS 从文件中添加设计表
- python - 如何将 xbbg/blpapi Bloomberg 时间序列传递到 pandas DataFrame?
- r - 在 R 中运行 randomForest 时出错:“y - ymean 中的错误:二进制运算符的非数字参数”
- c++ - 为什么 C++ 中的所有函数都不是虚函数?
- reactjs - React 中从底部组件到顶部组件的 Prop
- python - Python。如果我们从列表中获取 list() 函数会发生什么
- c++ - 我很困惑,所以我应该如何调用该函数来获取输出