Я работаю над системой, которая обрабатывает электронные письма до их отправки, находит все кодированные изображения base64 внутри и внедряет их как встроенные вложения с идентификаторами содержимого (cid).SwiftMailer RfcComplianceException Недопустимый идентификатор
Well 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>
Таким образом, очевидно, что есть формат идентификаторов контента? Я искал RFC 2111 и не мог найти ничего, что могло бы обозначить формат. Оглядываясь по сторонам, я подумал, что это просто какая-то случайная уникальная строка, которую вы можете придумать. Или, может быть, сейчас всего 4 часа, и мой мозг проверял.
Кроме того, я не могу просто использовать созданный Swift cid, потому что cid уже создан и используется другой службой ранее в цепочке.
Так есть ли действительный формат для cid?
https://github.com/swiftmailer/swiftmailer/blob/de19df332219d73a2704525ba75aabd7dfaa303b/lib/classes/Swift/Mime/Headers/IdentificationHeader.php#L168 – Mkay1