ฉันมีประเภทโหนด "ใบแจ้งหนี้" ซึ่งมีฟิลด์ไฟล์ "field_invoice" (pdf) ฉันกำลังตั้งค่าการดำเนินการตามกฎ และกำลังค้นหาวิธีให้กฎรับไฟล์จาก "field_invoice" และส่งอีเมลพร้อมแนบไฟล์ไปให้ผู้ใช้
ฉันใช้ D9.3.x และมี Rules + Swiftmailer ทำงานอย่างถูกต้อง
นี่คือกฎปัจจุบันของฉัน
- เหตุการณ์: หลังจากบันทึกเอนทิตีเนื้อหาใหม่ประเภทใบแจ้งหนี้
- เงื่อนไข: เอนทิตีเป็นกลุ่ม (โหนด โหนด ใบแจ้งหนี้)
- การดำเนินการ: ส่งอีเมล
จนถึงตอนนี้ฉันสบายดี ฉันสามารถเข้าถึง "field_invoice" ในการดำเนินการส่งอีเมล
ขั้นตอนต่อไปที่ฉันพยายามคือการสร้างโมดูลที่กำหนดเองด้วยสิ่งนี้ใน mymodule.module:
$file->uri = '<ฉันจะใส่อะไรที่นี่?>'; // เส้นทางไฟล์
$file->filename = '<แล้วจะใส่อะไรที่นี่?>'; //ชื่อไฟล์
$file->filemime = 'ใบสมัคร/pdf'; // ประเภทไฟล์ mime
$params['ไฟล์แนบ'][] = $file;
$mailManager->mail($module, $key, $to, $langcode, $params, NULL, $send);
ฟังก์ชัน mymodule_mail($key, &$message, $params) {
สวิตช์ (คีย์ $) {
กรณี 'my_email_key':
$message['body'][] = $params['body'];
$message['subject'] = $params['subject'];
$message['params']['ไฟล์แนบ'] = $params['ไฟล์แนบ'];
หยุดพัก;
}
}
แต่ฉันไม่รู้ว่าจะให้ mymodule รับกฎของฉันและส่งไฟล์ที่อัปโหลดได้อย่างไรเมื่อมันทำงาน มีคำถามที่คล้ายกันจำนวนมากที่ได้รับคำตอบเป็นอย่างดี แต่ทั้งหมดนั้นย้อนหลังไปถึงยุค D7 พร้อมข้อมูลที่ล้าสมัย ฉันพบเอกสารหรือกรณีการใช้งานเล็กๆ น้อยๆ เกี่ยวกับวิธีการทำสิ่งนี้ให้สำเร็จด้วย D8-D9
ฉันพบเอกสารแต่ไม่เพียงพอสำหรับฉัน:
คุณจะเพิ่มไฟล์แนบ PDF ในอีเมลได้อย่างไร
https://www.drupal.org/project/swiftmailer/issues/2713651