Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.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# 使用dotnetzip库附加到电子邮件后无法打开Zip文件_C#_.net_Asp.net Mvc_Smtpclient_Dotnetzip - Fatal编程技术网

C# 使用dotnetzip库附加到电子邮件后无法打开Zip文件

C# 使用dotnetzip库附加到电子邮件后无法打开Zip文件,c#,.net,asp.net-mvc,smtpclient,dotnetzip,C#,.net,Asp.net Mvc,Smtpclient,Dotnetzip,我能够将我的所有文件保存到zip文件中,并正确下载它们。现在我需要使用该zip文件来附加到电子邮件。我得到错误,说它不能被打开,如果我打开它在记事本,他们是空白的。它们是PDF 以下是我下载它们的方式: else if(收音机[0]=“电子邮件声明”) { //将电子邮件数组放入列表以发送电子邮件 如果(emails.ToString()!=“”) { var allEmails=电子邮件[0]。拆分(','); foreach(电子邮件中的var电子邮件) { if(emailValid.Is

我能够将我的所有文件保存到zip文件中,并正确下载它们。现在我需要使用该zip文件来附加到电子邮件。我得到错误,说它不能被打开,如果我打开它在记事本,他们是空白的。它们是PDF

以下是我下载它们的方式:

else if(收音机[0]=“电子邮件声明”)
{
//将电子邮件数组放入列表以发送电子邮件
如果(emails.ToString()!=“”)
{
var allEmails=电子邮件[0]。拆分(',');
foreach(电子邮件中的var电子邮件)
{
if(emailValid.IsMatch(电子邮件))
{
添加(电子邮件);
}
其他的
{
返回Json(新的{success=false,message=$”*无效的电子邮件地址:{email}。\n\n*请仔细检查并重试。“});
}
列表distinctFiles=所有路径
.GroupBy(x=>x.Split(新字符[]{'\\'}).Last())
.Select(x=>x.First())
.ToList();
使用(ZipFile zip=new ZipFile())
{
zip.AddFiles(distinctFiles,@“\”;
MemoryStream输出=新的MemoryStream();
输出位置=0;
压缩保存(输出);
dbquerys.sendmail(everymail,output,fromAddress,“客户声明报告”,“这是您请求的客户声明”,true);
因此,
dbquerys.sendmail
函数将使我了解以下内容:

public static void sendmail(列出收件人、MemoryStream输出、字符串发件人、字符串主题、字符串htmlMessage、bool isHtml=true)
{
var host=ConfigurationManager.AppSettings[“emailHost”];
尝试
{
MailMessage mail=新的MailMessage();
mail.From=新邮件地址(From);
foreach(收件人中的var r)
{
邮寄至地址(r);
}
mail.Subject=主题;
mail.IsBodyHtml=isHtml;
mail.Body=htmlMessage;
//字符串结果=System.Text.Encoding.UTF8.GetString(output.ToArray());
SmtpClient SmtpServer=新的SmtpClient(主机);
SmtpServer.Port=25;
mail.Attachments.Add(新附件(输出,“客户声明”);
发送(邮件);
}
捕获(例外情况除外)
{
FMBUtilities.Logger.LogErrorToSql2012Prd(“dbquerys”,“sendmail”,ex);
}
}

在此之后,我无法阅读附件。我需要做什么才能使其可读?

请在附件中使用正确的格式。您可以尝试mail.Attachments.Add(新附件(输出,“Client Statments.zip”)