電子メールが送信される前に電子メールを受信し、その中のすべてのbase64でエンコードされたイメージを検索し、コンテンツID(cid)付きのインライン添付ファイルとして埋め込むシステムに取り組んでいます。SwiftMailer RfcComplianceException無効なIDが指定されました
よくSwiftMailerは私がIDのやり方を好きではありません。私はこの試みた:
$attachment = new \Swift_Attachment($image['bytes'], $image['name'], $image['type']);
$attachment->setDisposition('inline');
$attachment->setId($image['content_id']); // content id is dhGCSXS6bXRbBQIKl2xoXNh4
をそして、それは私にこれを与えた:
// Swift_RfcComplianceException: Invalid ID given <dhGCSXS6bXRbBQIKl2xoXNh4>
だから、明らかにコンテンツIDの形式がありますか?私はRFC 2111を見て、実際にフォーマットを綴るものは見つけられませんでした。周りを見回して、私はそれがちょうどあなたが思い付くことができるランダムなユニークな文字列だったと思った。それとも、ちょうど4時で、私の脳はチェックアウトしています。
また、Cidが既に生成され、チェーンの前の別のサービスで使用されているため、Swiftによって生成されたcidを使用することはできません。
有効なcid形式がありますか?
https://github.com/swiftmailer/swiftmailer/blob/de19df332219d73a2704525ba75aabd7dfaa303b/lib/classes/Swift/Mime/Headers/IdentificationHeader.php#L168 – Mkay1