转义电子邮件或纯文本时使用哪个转义函数?

时间:2020-05-12 作者:sazr

我已经向WordPress repo提交了一个插件,他们回来后说,我需要对我的电子邮件发送代码中的值进行转义,而不是进行清理。所以我不知道他们想让我使用什么功能。你能给我提供关于我应该使用的最佳转义函数的建议吗emailplain text?

他们希望我逃避而不是清理的现有代码:

$message = "
...
    <li><strong>Email:</strong> " . sanitize_email($_REQUEST[\'email\']) . "</li>
    <li><strong>Name: </strong> " . sanitize_text_field($_REQUEST[\'name\'])  . "</li>
...
";

$emailResult =  wp_mail("[email protected]", "Support Request", $message, array(\'Content-Type: text/html; charset=UTF-8\') );
没有esc_email()esc_text() 作用那么,下面的内容是否正确,可以避开电子邮件和纯文本?

<li><strong>Email:</strong> " . esc_html($_REQUEST[\'email\']) . "</li>
<li><strong>Name: </strong> " . esc_textarea($_REQUEST[\'name\'])  . "</li>

1 个回复
SO网友:AnotherAccount

是的,您可以将其转义为普通HTML,如下所示:
<?php echo esc_html( $email ); ?>

对于mailto链接,可以使用esc\\u url。只需确保在URL中包含mailto,例如:
<a href="<?php echo esc_url( \'mailto:\' . $email ); ?>">

因此,完全转义的邮件链接如下所示:
<a href="<?php echo esc_url( \'mailto:\' . $email ); ?>"><?php echo esc_html( $email ); ?></a>