Am un nod de tip „invoice” care conține un câmp de fișier „field_invoice” (pdf). Configurați următoarele acțiuni privind regulile și caut o modalitate prin care regulile preiau fișierul din „field_invoice” și trimit un e-mail cu fișierul atașat unui utilizator.
Sunt pe D9.3.x și rulează corect Rules + Swiftmailer.
Acestea sunt regulile mele actuale
- Eveniment: După salvarea unei noi entitati de conținut de tip Factură
- Condiție: Entitatea este din pachet (nod, nod, Factură)
- Acțiune: Trimiteți e-mail
Până acum sunt bine. Pot accesa „field_invoice” în acțiunea Trimite e-mail.
Următorul pas pe care l-am încercat este crearea unui modul personalizat cu acesta în mymodule.module:
$file->uri = '<ce pun aici?>'; // Calea fișierului
$file->filename = '<și ce pun aici?>'; //Nume de fișier
$file->filemime = 'aplicație/pdf'; //Fișier tip mime
$params['attachments'][] = $fisier;
$mailManager->mail($modul, $key, $to, $langcode, $params, NULL, $send);
funcția mymodule_mail($cheie, &$mesaj, $params) {
comutator ($key) {
cazul „my_email_key”:
$message['body'][] = $params['body'];
$message['subject'] = $params['subject'];
$message['params']['attachments'] = $params['attachments'];
pauză;
}
}
Dar habar n-am cum să las mymodule să-mi ia regula și să transmită fișierul încărcat când rulează. Există o mulțime de întrebări similare, la care s-a răspuns bine, dar toate datează din epoca D7 cu informații învechite. Găsesc puțină documentație sau cazuri de utilizare despre cum să realizez acest lucru cu D8-D9.
Documentația pe care am găsit-o, dar nu mi-a fost suficientă:
Cum adaugi un atașament PDF la un e-mail?
https://www.drupal.org/project/swiftmailer/issues/2713651