如何解决是否可以通过循环为电子邮件模板创建 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 举报,一经查实,本站将立刻删除。