Arrays 从阵列中获取图像并将其嵌入电子邮件正文中

Arrays 从阵列中获取图像并将其嵌入电子邮件正文中,arrays,email,phpmailer,Arrays,Email,Phpmailer,我正在使用wordpress cms和PHPMailer。在我的表单处理器中,我有一个简单的循环,它生成一组选定的图像。请检查下面的相关代码块。它基本上根据通过表单提供的post ID生成一个图像数组。我需要拉所有这些图像,并将其嵌入电子邮件正文。请注意,我不打算将这些图像作为附件发送。这是一个精简的代码版本 $email = new PHPMailer(); $email->From = 'John@example.com'; $email->FromName = 'J

我正在使用wordpress cms和PHPMailer。在我的表单处理器中,我有一个简单的循环,它生成一组选定的图像。请检查下面的相关代码块。它基本上根据通过表单提供的post ID生成一个图像数组。我需要拉所有这些图像,并将其嵌入电子邮件正文。请注意,我不打算将这些图像作为附件发送。这是一个精简的代码版本

$email = new PHPMailer();
$email->From      = 'John@example.com';
$email->FromName  = 'John Doe';
$email->Subject   = 'This is the subject of the message';                        
$body = '<table><tr><td>';

$body .=  
    $args = array('post__in' => $short_ids, 'post_type' => 'post');
    $posts = get_posts($args);

    foreach ($posts as $post) : ?>
    <?php $images = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'cover' );

    $img_url = $images[0];
    $email->AddEmbeddedImage($img_url, '1243');?>
    <img src="cid:1243"/>               
    <?php endforeach;?>

$body = '</td></tr></table><tr>';
$email->MsgHTML($body);
$email->IsHTML(true); 
$email->AddAddress( 'email@gmail.com' );
$email->Send();

事实证明,使用PHPMailer在主体中嵌入图像不一定需要AddEmbeddedImage。通过将代码的结果附加到$body变量,然后使用PHPMailer的$email->MsgHTML$body来获取输出,您可以使用本机php的方式来实现这一点。下面是相关代码,它根据$select_id中存储的post id提取几个post缩略图,并将结果附加到$body变量

$args = array('post__in' => $select_ids, 'post_type' => 'post');

$posts = get_posts($args);
foreach ($posts as $post) {
$images = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'cover');
$body .=    '<a href="'.get_permalink().'"><img src="'.$images[0].'"></a>';             
} 
如果你是新手,我想指出我在剧本中犯的一个愚蠢的错误。如果要在第一行和第二行中设置数组,请确保不要放置$body或$body变量,否则代码将在html输出中输出不需要的单词数组,这也是我在html输出中获取单词数组的原因

$args = array('post__in' => $select_ids, 'post_type' => 'post');

$posts = get_posts($args);
foreach ($posts as $post) {
$images = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'cover');
$body .=    '<a href="'.get_permalink().'"><img src="'.$images[0].'"></a>';             
}