微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以通过循环为电子邮件模板创建 html 元素?

如何解决是否可以通过循环为电子邮件模板创建 html 元素?

我有一个可用的 PHPMailer,可以发送各种电子邮件模板; “忘记密码”或“忘记用户名”等邮件

我很好奇是否可以通过 while 循环创建 html 元素? (对不起,我不能很好地解释它,所以这是我当前的代码。它可以工作,但它只是没有执行我想要它做的循环。它发送一封电子邮件,只有一个用户名)。

for ($i=0; $i < count($w_user_id_infos); $i++) { 
    $replaceUsername = $w_user_id_infos[$i]["login_cd"];;

    for ($j=0; $j < count($w_user_id_infos[$i]["customer_info"]); $j++) { 
        $w_customer_name1_text = $w_user_id_infos[$i]["customer_info"][$j]["customer_name1_text"];
        $w_customer_name2_text = $w_user_id_infos[$i]["customer_info"][$j]["customer_name2_text"];
        $w_body .= ($j + 1) . " " . $w_customer_name1_text . " / " . $w_customer_name2_text . "<br>";
        
        $replacementValues = [
            $w_customer_name1_text,$w_customer_name2_text
        ];
        $templateValues = [
            "%username%","%company%","%company2%"
        ];
    }
        
    array_splice($replacementValues,$replaceUsername);
    
    $w_body = file_get_contents('../../../framework/src/function/html_templates/forgot_username.html');
    $w_body = str_replace($templateValues,$replacementValues,$w_body);
}
$data = explode(',',$_SESSION['icon_data']);
$image_data = base64_decode($data[1]);

f_common_send_mail($w_addr,$w_subject,$w_body,$image_data);

因此,对于我们的程序,用户可以使用一个电子邮件地址创建多个帐户。循环问题的目标是,如果该用户忘记了一个(或多个)用户名,他们可以点击“忘记用户名”,然后在输入他们的电子邮件地址后,将发送一封包含所有用户名的电子邮件

这是 html 模板。

<table bgcolor="#ffffff" class="table_content" align="center" cellpadding="0" cellspacing="0" border="0">
        <!-- HEAD -->
        <tr>
          <td bgcolor="#ffffff" class="header_detail_area">
              <table width="10%" align="left" border="0" cellpadding="0" cellspacing="0">  
                <tr>
                  <td style="padding: 0 20px 20px 0;">
                    <img src="cid:img" style="width: 65px; height: 65px; border-radius: 50%;">
                  </td>
                </tr>
              </table>
              <table width="70%" align="left" border="0" cellpadding="0" cellspacing="0">  
                <tr>
                    <td class="header_info">
                      STRUCT - ユーザー名の確認のお知らせ
                    </td>
                </tr>
              </table>
          </td>
        </tr>
         <!-- HEAD END -->
         <!-- USER INFO  -->
        <tr>
          <td class="user_detail_area borderbottom">
            <table width="97%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td class="user_info">
                   ユーザー名の確認を受け付けました。本メールアドレスには以下のユーザー名が紐づいています。                
                </td>
              </tr>
              <tr>
                <td class="user_info_blockquote">
                  <p class="blockquote">
                       <font style="color: #03abf2"> ユーザー名: </font> %username% <br>
                       <font style="color: #03abf2"> 所属会社: </font> %company% / %company2%
                  </p>          
                </td>
              </tr>
              <tr><td><br></td></tr>
            </table>
          </td>
        </tr>
        <!-- USER INFO END -->
        <!-- FOOTER DETAILS -->
        <tr>
          <td class="footer_detail_area" bgcolor="#31424b">
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td align="center">
                 <img src="cid:logo" width="200">
                </td>
              </tr>
            </table>
          </td>
        </tr>
        <!-- FOOTER DETAILS END -->

    </table>

    </td>
  </tr>
</table>

我想知道这是否可能?以某种方式基于 for 循环创建更多的 %username%用户当前仅使用在其电子邮件地址中注册用户名接收电子邮件

是否可以通过循环操作 html 电子邮件模板?我的想法是,因为它使用的是已经制作好的电子邮件模板,所以它没有机会添加更多的 html 元素?即使我添加了一些字符串文字,我也不认为我可以在字符串文字中循环。

提前致谢。

解决方法

我的解决方案:

我替换了需要循环的整个 tr:

<tr>
 <td class="user_info_blockquote">
  <p class="blockquote">
   <font style="color: #03abf2"> ユーザー名: </font> %username% <br>
   <font style="color: #03abf2"> 所属会社: </font> %company% / %company2%
  </p>          
 </td>
</tr>

改为:

%userElement%

然后我在循环中创建了那个 html 元素,如下所示:

$userElement .= 
                '<tr>
                    <td class="user_info_blockquote">
                        <p class="blockquote">
                            <font style="color: #03abf2"> ユーザー名: </font> '. $replaceUsername .' <br>
                            <font style="color: #03abf2"> 所属会社: </font> '. $w_customer_name1_text .' / '. $w_customer_name2_text .'
                        </p>          
                    </td>   
                </tr>';

像魅力一样工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。