有没有办法知道asp.net c#中电子邮件中发送的附件大小?
谢谢!
答案 0 :(得分:6)
如果您正在使用System.Net.Mail
并通过Attachment
类附加文件,那么每个附件都应该包含一个包含实际文件的ContentStream
属性。此类型Stream
的属性具有Length
属性(类型为long
),它以字节为单位给出文件的大小。
答案 1 :(得分:1)
通常,附件是在System.Net.Mail中进行base64编码的。 base64编码占用3个字节,并将它们转换为4个字节。
您需要做的是确定附件的长度(Stream.Length,byte [] length或File length),然后除以.75。
这将为您提供附件的大小,为SMTP编码base64。
答案 2 :(得分:0)
我相信你可以使用HttpFileCollection类。它使您可以访问客户端上传的所有文件。 这是msdn link
答案 3 :(得分:0)
Attachment.ContentDisposition.Size
将给出附件大小(以字节为单位)
string smtpClientHost = "mymailsender.example.com";
string emailAddressFrom = "noreply@example.com";
MailMessage mailMessage = new MailMessage {
From = new MailAddress(strEmailAddressFrom)
};
mailMessage.To.Add(new MailAddress("examplerecipient@anotherdomain.com"));
mailMessage.Body = "Email body content here...";
mailMessage.Subject = "An important subject...";
foreach(var attachment in attachments)
if (attachment.ContentDisposition.Size < ByteSize.FromMegaBytes(1).Bytes)
mailMessage.Attachments.Add(attachment);
SmtpClient smtpClient = new SmtpClient(strSmtpClientHost);
smtpClient.Send(mailMessage);