174- elif campaign.attachment_id: 175- att = db.get(Attachment, campaign.attachment_id) 176- if att and att.kind == "html": 177: att_html = engine.substitute(att.html_attachment_body or "", rec, g, 178- custom_fields=cf, 179- extra={"unsubscribe_link": unsub_url}).text 180- if att_html: 181- pdf_bytes = message_builder.html_to_pdf(att_html) 182- fname = message_builder.generate_attachment_filename( 183- var_cfg.get("attachment_kind", "invoice"), cr.generated_invoice_number) 184- attachments.append({"filename": fname, "content": pdf_bytes, 185- "mime_type": "application/pdf"}) 186- att_names.append(fname) 187- if campaign.attach_mode in ("file", "image") and campaign.attachment_id: 188- att = db.get(Attachment, campaign.attachment_id) 189- if att: