C# 带有IMAP协议的邮件附件

C# 带有IMAP协议的邮件附件,c#,smtp,imap,email-attachments,C#,Smtp,Imap,Email Attachments,当我想用IMAP协议将邮件存储到文件夹时,我遇到了一个小故障。我已将发送邮件通知封装在一个方法中。 此方法有两个操作: -使用标准SmtpClient发送邮件消息。 -将带有Imap协议的邮件推送到“已发送”文件夹。 我想保留发送消息以便跟踪它。我的邮件包含文本正文和一些附件。最终用户正确接收邮件和附件,但在我的“已发送”目录中,邮件正确呈现。邮件包含附件,但大小为零,不可读。对于imap中的对话框,我使用S22.imap NuGet包 使用Imap协议,是否需要向服务器的存储附件添加一些操作

当我想用IMAP协议将邮件存储到文件夹时,我遇到了一个小故障。我已将发送邮件通知封装在一个方法中。 此方法有两个操作: -使用标准SmtpClient发送邮件消息。 -将带有Imap协议的邮件推送到“已发送”文件夹。 我想保留发送消息以便跟踪它。我的邮件包含文本正文和一些附件。最终用户正确接收邮件和附件,但在我的“已发送”目录中,邮件正确呈现。邮件包含附件,但大小为零,不可读。对于imap中的对话框,我使用S22.imap NuGet包

使用Imap协议,是否需要向服务器的存储附件添加一些操作

   public void SendMail(MailMessage p_Message)
    {
        SmtpClient smtpClient = new SmtpClient
        {
            Host = Constante.Constante.MaillingConstante.MaillingHost,
            Port = Constante.Constante.MaillingConstante.SmtpMaillingPort,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Timeout = 30 * 1000,
            Credentials = new NetworkCredential(p_Message.From.Address, <pwd>)
        };

        try
        {
            smtpClient.Send(p_Message);

            // The default port for IMAP over SSL is 993.
            using (ImapClient imapClient = new ImapClient(Constante.Constante.MaillingConstante.MaillingHost, Constante.Constante.MaillingConstante.ImapMaillingPort, p_Message.From.Address, <pwd>, AuthMethod.Login, true))
            {
                imapClient.StoreMessage(p_Message, false, "Sent");
            }
        }
        catch (Exception ex)
        {
              .......
        }
    }
public void SendMail(MailMessage p_Message)
{
SmtpClient SmtpClient=新SmtpClient
{
Host=Constante.Constante.MaillingConstante.MaillingHost,
Port=Constante.Constante.MaillingConstante.SmtpMaillingPort,
EnableSsl=true,
DeliveryMethod=SmtpDeliveryMethod.Network,
UseDefaultCredentials=false,
超时=30*1000,
凭据=新网络凭据(p_Message.From.Address,)
};
尝试
{
smtpClient.Send(p_消息);
//通过SSL的IMAP的默认端口是993。
使用(ImapClient ImapClient=new ImapClient(Constante.Constante.MaillingConstante.MaillingHost,Constante.Constante.MaillingConstante.imapmailingport,p_Message.From.Address,AuthMethod.Login,true))
{
imapClient.StoreMessage(p_Message,false,“Sent”);
}
}
捕获(例外情况除外)
{
.......
}
}

你是说“文件夹”吗?IMAP不将消息集合称为目录。而不是“推送”,你可能意味着“上传”或“附加”。您的邮件有点混乱。Max Yes我将邮件存储在“已发送”文件夹中。我发现了问题。有必要在开始时倒带附件的内容流。我在attachments集合上循环并设置ContentStream.Position=0。如果您发现了解决方案,请回答您自己的问题并将其标记为已接受。