You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET Core中使用AWS SES发送带PDF附件的原始邮件?

亚马逊SES发送带DevExpress导出PDF附件的邮件异常

以下是我目前已经完成的实现代码:

public static async Task<bool> SendEmailWithAttachmentAsync(EmailObj emlData)
{
    var replyToAddresses = new List<string>();
    replyToAddresses.Add("Email");

    try
    {
        var options = new CredentialProfileOptions
        {
            AccessKey = "1234",
            SecretKey = "5678"
        };

        var profile = new CredentialProfile("default", options);
        var sharedFile = new SharedCredentialsFile();
        sharedFile.RegisterProfile(profile);

        using (var client = new AmazonSimpleEmailServiceClient(RegionEndpoint.APSoutheast2))
        {
            var bodyBuilder = new BodyBuilder();

            bodyBuilder.HtmlBody = "Hello World. Please view the attachment.";
            bodyBuilder.TextBody = "Hello World. Please view the attachment.";

            var mimeMessage = new MimeMessage();
            mimeMessage.From.Add(new MailboxAddress("Name", "Email"));
            mimeMessage.To.Add(new MailboxAddress("Recipient Name", "Email"));

            mimeMessage.Subject = "Hello World";
            
            //using (var messageStream = new MemoryStream())
            //{
                MemoryStream messageStream = new MemoryStream();
                
                emlData.Report.ExportToPdf(messageStream);
                messageStream.Seek(0, System.IO.SeekOrigin.Begin);
                bodyBuilder.Attachments.Add("File.pdf", messageStream, new ContentType("application", "pdf"));
                mimeMessage.WriteTo(messageStream);
                
                var sendRequest = new SendRawEmailRequest {
                        Source = senderAddress,
                        Destinations = new List<string> { "Email" },
                        RawMessage = new RawMessage(messageStream)
                    };

                var response = await client.SendRawEmailAsync(sendRequest);

                if (response.MessageId != null)
                {
                    messageStream.Close();
                    messageStream.Flush();
                }

                    
            //}
            
            return true;
        }
    }
    catch (Exception err)
    {
        return false;
    }
}

我尝试过将代码放入using(memoryStream){}块中,但似乎没有生效。
代码中emlData.Report.ExportToPdf(messageStream)里的Report是DevExpress报表的XtraReport,导出功能已经通过下载场景验证可正常运行,但邮件发送功能始终异常。

恳请各位提供帮助,谢谢。我附上了收到的邮件的异常截图:异常邮件截图


内容的提问来源于stack exchange,提问作者CoderGuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:36:07