Skip to content

Commit 2142315

Browse files
authored
fix #4036 【メール】送信情報をデータベースに保存しない場合にファイルを添付すると送信に失敗する (#4093)
1 parent 644b210 commit 2142315

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

plugins/bc-mail/src/Service/Front/MailFrontService.php

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -248,18 +248,19 @@ public function sendMail(EntityInterface $mailContent, EntityInterface $mailMess
248248
$sendEmailOptions
249249
]);
250250
}
251-
if ($mailContent->save_info) return;
252-
foreach($mailFields as $field) {
253-
if ($field->type !== 'file') continue;
254-
// 削除フラグをセット
255-
$mailMessage->{$field->field_name . '_delete'} = true;
256-
}
257-
// TODO ucmitz 未検証
258-
$mailMessagesTable = TableRegistry::getTableLocator()->get('BcMail.MailMessages');
259-
$mailMessagesTable->getFileUploader()->deleteFiles($mailMessage, $mailMessage);
260251
} catch (\Throwable $e) {
252+
if (!$mailContent->save_info) {
253+
/** @var MailMessagesService $mailMessagesService */
254+
$mailMessagesService = $this->getService(MailMessagesServiceInterface::class);
255+
$mailMessagesService->delete($mailMessage->id);
256+
}
261257
throw $e;
262258
}
259+
if (!$mailContent->save_info) {
260+
/** @var MailMessagesService $mailMessagesService */
261+
$mailMessagesService = $this->getService(MailMessagesServiceInterface::class);
262+
$mailMessagesService->delete($mailMessage->id);
263+
}
263264
}
264265

265266
/**

plugins/bc-mail/src/Service/MailMessagesService.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,7 @@ public function create(EntityInterface $mailContent, $postData)
143143
$mailFieldsTable = TableRegistry::getTableLocator()->get('BcMail.MailFields');
144144
$mailFields = $mailFieldsTable->find()->where(['MailFields.mail_content_id' => $mailContent->id, 'MailFields.use_field' => true])->all();
145145
$this->MailMessages->convertToDb($mailFields, $entity);
146-
if ($mailContent->save_info) {
147-
return $this->MailMessages->saveOrFail($entity);
148-
} else {
149-
return $entity;
150-
}
146+
return $this->MailMessages->saveOrFail($entity);
151147
}
152148
throw new PersistenceFailedException($entity, __d('baser_core', '入力エラーです。内容を見直してください。'));
153149
}

0 commit comments

Comments
 (0)