一千萬個為什麽

搜索

電子郵件附件中的“Content-ID”


我需要在電子郵件中添加圖片(不公開)。最初我試過“內嵌嵌入”但是gmail,...阻止圖像,現在我試圖添加“CID嵌入圖像”

存在一些在附加文件中添加Content-ID的方法。

$params["attachments"][] = array( 'fullPath' => $output, 'Content-ID' => 'attachementsignature' //Something like that );

Info "Inline Embedding", "CID Embedded Images" in https://sendgrid.com/blog/embedding-images-emails-facts/

最佳答案

@Sudesh應用補丁後,我使用了一個令牌,因為我在圖像中需要一個自定義字段,也許適合你(答案不適合評論:S)

cid需要郵件格式,例如[email protected]

hook_civicrm_tokenValues( &$values, $cids, $job = null, $tokens = array(), $context = null ) {
...
 $values[$key]["xxx.app_signature"] = 'Embedded Image' . '' . $config->customFileUploadDir . $result_image["uri"] . '';

然後在郵件鉤子中用正確的值替換令牌

hook_civicrm_alterMailParams(&$params, $context) {  
  $regex = "/<\s*tagimagetoken[^>]*>([^<]*)<\s*\/\s*tagimagetoken\s*>/";
  preg_match_all($regex, $params["html"], $output);      
  if(isset($output[1][0])) {  
    $params["html"] = preg_replace ( $regex , "" ,  $params["html"]); 
    $params["attachments"][] =  array(
      'fullPath' => $output[1][0],      
      'content_id' => "[email protected]",
      'c_type' => "image/png",
      'is_file' => TRUE,
      'is_image' => TRUE,
    );      
  }   
}

並在電子郵件中放置令牌

轉載註明原文: 電子郵件附件中的“Content-ID”

猜你喜歡