Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net中获取电子邮件附件大小_C#_Asp.net_Visual Studio_Email_Smtp - Fatal编程技术网

C# 在asp.net中获取电子邮件附件大小

C# 在asp.net中获取电子邮件附件大小,c#,asp.net,visual-studio,email,smtp,C#,Asp.net,Visual Studio,Email,Smtp,有没有办法知道在asp.net c#中通过电子邮件发送的附件的大小 谢谢 我相信你可以使用HttpFileCollection类。它允许您访问客户端上载的所有文件。 这是msdn如果您使用的是System.Net.Mail并通过类附加文件,那么每个附件都应该有一个包含实际文件的属性。类型为的此属性具有Length属性(类型为long),该属性以字节为单位给出文件大小。通常,附件在System.Net.Mail中以base64编码。base64编码需要3个字节,并将它们转换为4个字节 您需要做的是

有没有办法知道在asp.net c#中通过电子邮件发送的附件的大小


谢谢

我相信你可以使用HttpFileCollection类。它允许您访问客户端上载的所有文件。
这是msdn

如果您使用的是
System.Net.Mail
并通过类附加文件,那么每个附件都应该有一个包含实际文件的属性。类型为的此属性具有
Length
属性(类型为
long
),该属性以字节为单位给出文件大小。

通常,附件在System.Net.Mail中以base64编码。base64编码需要3个字节,并将它们转换为4个字节

您需要做的是确定附件的长度(Stream.length、byte[]length或文件长度),然后将其除以.75

这将给出附件的大小,base64编码用于SMTP。

将给出附件大小(以字节为单位)

string smtpClientHost=“mymailssender.example.com”;
字符串emailAddressFrom=”noreply@example.com";
MailMessage=newmailmessage{
From=新邮件地址(strEmailAddressFrom)
};
mailMessage.To.Add(新邮件地址(“examplerecipient@anotherdomain.com"));
mailMessage.Body=“此处的电子邮件正文内容…”;
mailMessage.Subject=“一个重要的主题…”;
foreach(附件中的var附件)
if(attachment.ContentDisposition.SizesmtpClient.Send(mailMessage)电子邮件是如何发送的?附件是如何添加到电子邮件中的?我讨厌逻辑答案为“是”的问题。@Lazarus:让我知道它是如何“是”的。@James:电子邮件是通过常规电子邮件代码发送的。我应该发布代码吗?@Xor:为什么“是”是因为你可以“知道附件的大小”。按照这里的一般思路,你应该发布你的代码,这样我们就有了一些关于你试图从何处获取这些信息的线索,然后我们可以将“是”缩小到一个更具体的例子中。这个数字是一个近似值,因为
base64
版本应该始终是4字节的倍数。在计算中调整这一点并不困难;向上填充到下一个偶数4字节。此外,对于电子邮件,大约每68个字符的
base64
都会有换行符(如果您有CRLF行尾,则为两个字节),这取决于base64编码器的配置和实现方式。