From d6b3c9e94d7fdd92b2ba31094469c5b35a2e2943 Mon Sep 17 00:00:00 2001 From: "karel.picman@lbcfree.net" Date: Tue, 16 Jun 2020 14:36:30 +0200 Subject: [PATCH] A workaround for missing ZIP file while emailing --- app/controllers/dmsf_controller.rb | 6 +++++- app/models/dmsf_mailer.rb | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/controllers/dmsf_controller.rb b/app/controllers/dmsf_controller.rb index 5347b144..45e70e15 100644 --- a/app/controllers/dmsf_controller.rb +++ b/app/controllers/dmsf_controller.rb @@ -185,7 +185,11 @@ class DmsfController < ApplicationController flash[:error] = l(:error_email_to_must_be_entered) else DmsfMailer.deliver_send_documents(@project, params[:email].permit!, User.current) - File.delete(params[:email][:zipped_content]) + if(File.exist?(params[:email][:zipped_content])) + File.delete(params[:email][:zipped_content]) + else + flash[:error] = l(:header_minimum_filesize) + end flash[:notice] = l(:notice_email_sent, params[:email][:to]) end redirect_to dmsf_folder_path(id: @project, folder_id: @folder) diff --git a/app/models/dmsf_mailer.rb b/app/models/dmsf_mailer.rb index 66438fb7..5e4b2657 100644 --- a/app/models/dmsf_mailer.rb +++ b/app/models/dmsf_mailer.rb @@ -84,8 +84,12 @@ class DmsfMailer < Mailer @files = email_params[:files] @author = author unless @links_only - zipped_content_data = open(email_params[:zipped_content], 'rb') { |io| io.read } - attachments['Documents.zip'] = { content_type: 'application/zip', content: zipped_content_data } + if File.exist?(email_params[:zipped_content]) + zipped_content_data = open(email_params[:zipped_content], 'rb') { |io| io.read } + attachments['Documents.zip'] = { content_type: 'application/zip', content: zipped_content_data } + else + Rails.logger.error "Cannot attach #{email_params[:zipped_content]}, it doesn't exist." + end end mail to: email_params[:to], cc: email_params[:cc], subject: email_params[:subject], 'From' => email_params[:from], 'Reply-To' => email_params[:reply_to]