如何为php,html电子邮件模板添加正文背景颜色

时间:2016-10-31 23:53:21

标签: php html css css3 html-email

所以我有一个确认电子邮件模板,发送时带有白色背景,但我想把它变成灰色,但我不知道如何在php文件中添加这个,下面的电子邮件功能是

$headers = "From: " . stripslashes_deep( html_entity_decode( $from_name, ENT_COMPAT, 'UTF-8' ) ) . " <$from_email>\r\n";
$headers .= "Reply-To: " . $from_email . "\r\n";
//$headers  .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
$headers = apply_filters( 'give_admin_donation_notification_headers', $headers, $payment_id, $payment_data );

$attachments = apply_filters( 'give_admin_donation_notification_attachments', array(), $payment_id, $payment_data );

$message = give_get_donation_notification_body_content( $payment_id, $payment_data );

我可以在标题后的任何地方添加一个html正文颜色标记吗?

这是give_get_donation_notification_body_content

中的代码
function give_get_donation_notification_body_content( $payment_id = 0, $payment_data = array() ) {

$user_info = maybe_unserialize( $payment_data['user_info'] );
$email     = give_get_payment_user_email( $payment_id );

if ( isset( $user_info['id'] ) && $user_info['id'] > 0 ) {
    $user_data = get_userdata( $user_info['id'] );
    $name      = $user_data->display_name;
} elseif ( isset( $user_info['first_name'] ) && isset( $user_info['last_name'] ) ) {
    $name = $user_info['first_name'] . ' ' . $user_info['last_name'];
} else {
    $name = $email;
}

$gateway = give_get_gateway_admin_label( get_post_meta( $payment_id, '_give_payment_gateway', true ) );

$default_email_body = esc_html__( 'Hello', 'give' ) . "\n\n";
$default_email_body .= esc_html__( 'A donation has been made.', 'give' ) . "\n\n";
/* translators: %s: form plural label */
$default_email_body .= sprintf( esc_html__( '%s sold:', 'give' ), give_get_forms_label_plural() ) . "\n\n";
$default_email_body .= esc_html__( 'Donor:', 'give' ) . ' ' . html_entity_decode( $name, ENT_COMPAT, 'UTF-8' ) . "\n";
$default_email_body .= esc_html__( 'Amount:', 'give' ) . ' ' . html_entity_decode( give_currency_filter( give_format_amount( give_get_payment_amount( $payment_id ) ) ), ENT_COMPAT, 'UTF-8' ) . "\n";
$default_email_body .= esc_html__( 'Payment Method:', 'give' ) . ' ' . $gateway . "\n\n";
$default_email_body .= esc_html__( 'Thank you', 'give' );

$email = give_get_option( 'donation_notification' );
$email = isset( $email ) ? stripslashes( $email ) : $default_email_body;

$email_body = give_do_email_tags( $email, $payment_id );

return apply_filters( 'give_donation_notification', wpautop( $email_body ), $payment_id, $payment_data );

}

1 个答案:

答案 0 :(得分:0)

您的问题是&#34;如何在正文电子邮件中添加html颜色标记&#34;,不是吗?

根据我的经验,使用PHP将电子邮件发送为html。 首先我们需要从客户那里了解到:

  1. 您的客户端操作系统:win,linux,android,mac,iphone等

  2. 您的客户电子邮件应用程序:thunderbird,firefox浏览器,Chrome浏览器,Outlook展示等

  3. 您的客户端EMAIL服务器:gmail,yahoo等

  4. 一切都有不同的问题。要了解更多相关信息,请阅读此链接https://css-tricks.com/using-css-in-html-emails-the-real-story/

    所以你能做的最好就是&#34;尽可能为所有电子邮件客户端设计最好的外观&#34;

    你的问题是

    1. &#34;我可以在电子邮件模板中添加背景颜色吗?&#34;
    2. 答案:是的,你可以

      1. &#34;我可以在HTML标签中添加Class / ID,然后使用CSS来设置样式吗?&#34;
      2. 答案:是的,你可以,但是有几个电子邮件服务器不允许你这样做,比如gmail

        1. &#34;我可以设置样式&lt; * body&gt;,并在&lt; * head&gt;中写一些东西或者只是写&lt; * html&gt;?&#34;
        2. 答案:是的,您可以,但阻止编写&lt; * html&gt;,&lt; * body&gt;,&lt; * head&gt;,直接从div或您的内容开始。

          所以最好的方法是使用内联样式设置每个html标记的样式

          $default_email_body = "<div style=\"background-color: grey;\">
          <h1 style=\"color: red;\">email title</h1>
          <p style=\"font-size: 8px;\">body emailllllllllllllllllll</p>
          </div>";
          

          尝试发送该HTML