My contact form is modular and sending email with and without a file is working. Files are saved to the folder and I am receiving emails. Now I want to add the file to the email as an attachment, but getting this error when I add the attachments: resume under process.
error:
Whoops \ Exception \ ErrorException (E_WARNING)
Undefined array key "path"
/var/www/httpd/jcb/user/plugins/email/email.php
break;
}
}
protected function sendFormEmail($form, $params, $vars, $event)
{
// Build message
$message = $this->email->buildMessage($params, $vars);
$locator = $this->grav['locator'];
if (isset($params['attachments'])) {
$filesToAttach = (array)$params['attachments'];
if ($filesToAttach) foreach ($filesToAttach as $fileToAttach) {
$filesValues = $form->value($fileToAttach);
if ($filesValues) foreach($filesValues as $fileValues) {
if (isset($fileValues['file'])) {
$filename = $fileValues['file'];
} else {
$filename = $fileValues['path'];
}
$filename = $locator->findResource($filename, true, true);
try {
$message->attachFromPath($filename);
} catch (\Exception $e) {
// Log any issues
$this->grav['log']->error($e->getMessage());
}
}
}
}
//fire event to apply optional signers
$this->grav->fireEvent('onEmailMessage', new Event(['message' => $message, 'params' => $params, 'form' => $form]));
// Send e-mail
$status = $this->email->send($message);
Arguments
"Undefined array key "path""
the form:
form:
name: email/jobs
action: /job
fields:
name:
id: name
label: Name
classes: 'form-control form-control-lg'
placeholder: 'Enter your name'
autocomplete: 'on'
type: text
validate:
required: true
email:
id: email
classes: 'form-control form-control-lg'
label: Email
placeholder: 'Enter your email address'
type: email
validate:
rule: email
pattern: "^\w([\w\.+-]*[\w-])?@([\w-]+\.)+[a-z]{2,5}$"
required: true
resume:
label: Resume
destination: 'user/data/email/jobs/uploads'
type: file
multiple: true
autofocus: false
limit: 5
accept:
- application/pdf
- .docx
- .doc
message:
label: Message
classes: 'form-control form-control-lg'
size: long
placeholder: 'Enter your message'
type: textarea
validate:
required: true
captcha:
type: turnstile
theme: light
buttons:
submit:
type: submit
value: Submit
classes: 'btn btn-primary btn-block'
reset:
type: reset
value: Reset
classes: 'btn btn-primary btn-block'
process:
turnstile: true
upload: true
email:
from: '{{ config.plugins.email.from }}'
to:
- '{{ config.plugins.email.from }}'
subject: '[Job Inquiry] {{ form.value.name|e }}'
body: "{% include 'forms/data.html.twig' %}"
attachments: ## <---- THE ERROR HAPPENS WHEN THIS IS ADDED
- resume ## < ---- THE ERROR HAPPENS WHEN THIS IS ADDED
save:
fileprefix: 'job-inquiry-[{{ form.value.name|e }}]-'
dateformat: Ymd-His-u
extension: txt
body: "{% include 'forms/data.txt.twig' %}"
message: 'Your email was sent successfully.'
display: thank-you-inquiry