我当前正在设置一个电子邮件模板,该模板包含两个部分:HTML和CSS。为了将所有内容放在一起并将HTML与CSS合并,我正在使用PHP Emogrifier。
现在我发现,当我对这两个元素进行记忆化时,uft-8编码存在问题。
所有类似于Ä,Ü,Ö的作品都可以正确显示,但是当我在此处将这样的链接放入内容时,utf-8解码不适用于此元素:
在气之前:
<a href="{password_reset_link}" id="button">Passwort zurücksetzten</a>
弄湿后:
<a href="%7Bpassword_reset_link%7D" id="button" style="color: #69f0ae; text-decoration: none; font-size: 20px; text-align: center; display: block; line-height: 1.7em !important; padding: .3em 1em; > border: 2px solid #69f0ae; border-radius: 3px; -webkit-border-radius: > 3px; -moz-border-radius: 3px; width: 40%; margin: auto; cursor: > pointer !important;">Passwort zurücksetzten</a>
因此,您可以看到href断开了,该href设置了一个占位符,该位符在进行自动处理之后被替换为正确的链接:
%7Bpassword_reset_link%7D
这是我对内容进行弄皱的方式:
//Apply CSS styles inline for picky email clients.
try {
$emogrifier = new Emogrifier( $message, $css );
$message = $emogrifier->emogrify();
} catch ( Exception $e ) {
$logger = wc_get_logger();
$logger->error( $e->getMessage(), array( 'source' => 'emogrifier' ) )
}
$message
和$css
包括内容和样式。当我在没有弄湿的情况下执行操作时,链接将成功替换。那么,有谁知道我该如何解决?
答案 0 :(得分:1)
这似乎是一个错误。当您检查Emogrifier的Github时,您会发现还有其他带有其他符号的错误,例如美元符号//Apply CSS styles inline for picky email clients.
try {
$emogrifier = new Emogrifier( $message, $css );
$message = $emogrifier->emogrify();
} catch ( Exception $e ) {
$logger = wc_get_logger();
$logger->error( $e->getMessage(), array( 'source' => 'emogrifier' ) );
}
$message = str_replace( array( '%7B', '%7D' ), array( '{', '}' ), $message );
。我现在已通过此变通办法临时修复了该问题,但此错误需要在Emogrifier本身上进行修复。
解决方法(希望对您有所帮助):
this.loginForm.username