Прикрепить файл к электронной почте
У меня есть сайт с веб-формой, которая при отправке отправляет электронное письмо. В форме есть загрузка файла, который затем должен быть прикреплен в качестве вложения к электронному письму. Я не получаю никакой привязанности.
Я создал крючок для hook_mail_alter
и попытался жестко закодировать любое вложение для отправки, но каждое полученное мной электронное письмо не содержит вложений.
function my_module_mail_alter(&$message) {
$file_content = file_get_contents('sites/default/files/tmp/test.pdf');
$message["params"]["attachments"] = array(
'filecontent' => $file_content,
'filename' => 'test.pdf',
'filemime' => 'application/pdf'
);
}
Я отладил MailManager.php
непосредственно перед отправкой электронного письма, и переменные $message
param['attachement']
содержат допустимое содержимое из кода выше.
Я установил модули: SMTP (чтобы я мог отправлять электронные письма с моего локального компьютера), MIMEMAIL и включил Почтовую систему Электронные письма отправляются без каких-либо проблем, но опять же никогда с вложением.
Я не знаю, что я делаю не так, есть идеи?
Ядро: 8.6
1 answers
Вот ответ, который является просто продолжением комментария @berramou
$file = file_load($fid);
$message["params"]["attachments"][] =[
'filepath' => $file->getFileUri(),
'filemime' => '' // argument must be present, but can remain empty
];
}