我正在使用MailKit/MimeKit1.2.7(最新的NuGet版本)。
我一直在阅读API文档和关于堆栈溢出的几篇文章。但我仍然无法成功地将电子邮件附件保存为一个文件。
以下是我的当前代码:
var mimePart = (attachment as MimePart);
var memoryStream = new MemoryStream();
mimePart.ContentObject.DecodeTo(attachmentStream);
using (var fileStream = new FileStream(filePath, FileMode.Create, Fil
我正在测试Mailkit,它不支持System.Net.Mail,我发现唯一的替代方案是.Net,它工作得很好,但不知道如何发送我存储在数据库中的二进制附件。我在MVC 5中使用了以下代码:
var mail = new MailMessage();
mail.Attachments.Add(new Attachment(new MemoryStream(attachment),
attachmentName, attachmentType));
我如何在MailKit中做到这一点。
我正在从几个电子邮件帐户下载附件。例如,我在每个帐户上有300个附件(它们是镜像)。当我只想从一个帐户下载附件时,程序日志中会出现错误:
...
09.04.2017 16:10:07: Download attachment nr 108 from task Movie.avi
09.04.2017 16:10:59: Download attachment nr 109 from task Movie.avi
09.04.2017 16:11:26: Download attachment nr 110 from task Movie.avi
09.04.2017 16:12:07: Do
下面是我正在使用的代码。基本上,它只是遍历数组,将文件添加到zip中,然后将zip保存到内存流中,然后通过电子邮件发送附件。
当我查看调试中的项时,我可以看到has文件有大约20兆字节的数据。当我收到附件时,它只有大约230位数据,没有任何内容。有什么想法吗?
byteCount = byteCount + docs[holder].FileSize;
if (byteCount > byteLimit)
{
//create a new stream and save the stream to the z
我正在尝试将PDF附件附加到使用System.Net.Mail发送的电子邮件中。附件添加部分如下所示:
using (MemoryStream pdfStream = new MemoryStream())
{
pdfStream.Write(pdfData, 0, pdfData.Length);
Attachment a = new Attachment(pdfStream,
string.Format("Receipt_{0}_{1}.pdf", jobId, DateTime.UtcNow.ToString("yyyyMMdd
我使用MailKit库从新到达的电子邮件中每隔x秒保存附件。我需要在一个单独的线程上运行这个进程,这样它就不会阻塞我的UI。每当我的代码到达ImapClient实例化时,它就会抛出一个错误:“线程被中止”。
ExceptionState:“无法计算表达式,因为代码经过优化,或者本机框架位于调用堆栈的顶部。”。
堆栈跟踪:
at MailKit.MailService..ctor(IProtocolLogger protocolLogger)
at MailKit.Net.Imap.ImapClient..ctor(IProtocolLogger protocolLogger)
at Mai
SendGrid API文档指定您可以从流中添加附件。。
我有一些斑点在Azure存储,我想电子邮件作为附件。为了实现这一点,我尝试使用一个MemoryStream
var getBlob = blobContainer.GetBlobReferenceFromServer(fileUploadLink.Name);
if(getBlob != null)
{
// Get file as a stream
MemoryStream memoryStream = new MemoryStream();
getBlob.DownloadToStream(memoryStream);
我正在尝试添加拖放功能到我的表单,以便我可以从电子邮件中拖动附件,它将保存附件。
我得到一个错误,说所需的权限不是由客户端持有。我想绕过这个问题。
下面是我的代码:
If e.Data.GetDataPresent("FileGroupDescriptor") Then
Dim theStream As Stream = DirectCast(e.Data.GetData("FileGroupDescriptor"), Stream)
Dim fileGroupDescriptor As Byte() = New Byte(511) {}
theStream.
我正在写一些东西,它将在内存中创建一个.csv文件,并将其作为附件发送。下面的代码成功地发送了一个.csv文件,但它是空的。我肯定我错过了一些简单的..。
MemoryStream memoryStream = new MemoryStream();
TextWriter tw = new StreamWriter(memoryStream);
tw.WriteLine("test,hello");
tw.WriteLine("1234,543");
Attachment att
我有多个PDF格式的MemoryStreams,我需要合并MemoryStreams,使它们成为一个长PDF,并将它们发送到浏览器。
我使用iText7创建了以下函数,该函数获取假定为PDF的MemoryStreams列表,输出是级联PDF的MemoryStream
public static MemoryStream PdfCat(List<MemoryStream> pdfs)
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
using
我使用的是名为: IMAP4客户端的MailKit。
它工作得很好,但是我不知道消息是否有附件。
我试过:
var summary = inbox.Fetch(MessageId,MessageSummaryItems.Body,cancel.Token).FirstOrDefault();
var bodyMultiPart = summary.Body as BodyPartMultipart;
if (bodyMultiPart != null)
{
foreach (var bodyPart in bodyMultiPart.BodyParts.Where(x => x
我最近看到了一段代码,它使用将文件附加到电子邮件中。当前的实现是将附件作为文件存储到存储设备中,并为其提供唯一的名称。然后将该文件附加到中,如下所示:
Attachment data = new Attachment(filename);
message.Attachments.Add(data);
然后发送电子邮件,然后从存储设备中删除该文件。
如果文件只是存储在MemoryStream中(它已经是这样了),然后将其作为附件传递到电子邮件中,这不是更快/更好吗?我可以想象,在MailMessage类中的某个地方,文件正被以完全相同的方式读入流并发送,而将其存储到磁盘的整个过程完全没有必要。