私はSMTP Postmanプラグインを使って私のワードプレスからEメールを送っています。私はfunctions.phpファイルに以下のようにHTML登録メールを作成する関数を作成しました:
/* Custom user registration email */
function set_bp_message_content_type() {
return 'text/html';
}
add_filter( 'bp_core_signup_send_validation_email_message', 'custom_buddypress_activation_message', 10, 3 );
function custom_buddypress_activation_message( $message, $user_id, $activate_url ) {
add_filter( 'wp_mail_content_type', 'set_bp_message_content_type' );
$user = get_userdata( $user_id );
return '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Welcome to My Site</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body style="margin: 0; padding: 0;">
</body>
</html>';
}
ただし、多くの電子メールプロバイダは、HTMLバージョンとプレーンテキストバージョンの両方について電子メールコンテンツをチェックしています。私のメールは現在HTMLのみで送信されます。現在の設定でHTMLとプレーンテキストのバージョンを送信する方法はありますか?
phpmailer_init にフックしてAltBody
を設定できるかどうか確認してください。
add_action('phpmailer_init', 'add_plain_text');
function add_plain_text($phpmailer)
{
$phpmailer->AltBody = "This is a text message";
}
おまけ:HTMLを premailer.dialect.ca に渡して、使用可能なテキストバージョンをレンダリングし、マルチパートEメールに関する詳細情報を HTML Eメールテンプレートの作成とコーディングについて学んだこと _で見つけてください。
更新:
PostmanのテストEメールは、テキスト部分とHTML部分の両方を含むメッセージの例です。そのコンテンツタイプはMIMEの拡張子である "multipart/alternative"です。
この サポート質問 on { Postman SMTP Mailer によると、答えはPostmanのテスト用Eメールとサイトthis 例 にあります。必ずmail
をwp_mail
に置き換えてください。
//specify the email address you are sending to, and the email subject
$email = '[email protected]';
$subject = 'Email Subject';
//create a boundary for the email. This
$boundary = uniqid('np');
//headers - specify your from email address and name here
//and specify the boundary for the email
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: Your Name \r\n";
$headers .= "To: ".$email."\r\n";
$headers .= "Content-Type: multipart/alternative;boundary=" . $boundary . "\r\n";
//here is the content body
$message = "This is a MIME encoded message.";
$message .= "\r\n\r\n--" . $boundary . "\r\n";
$message .= "Content-type: text/plain;charset=utf-8\r\n\r\n";
//Plain text body
$message .= "Hello,\nThis is a text email, the text/plain version.
\n\nRegards,\nYour Name";
$message .= "\r\n\r\n--" . $boundary . "\r\n";
$message .= "Content-type: text/html;charset=utf-8\r\n\r\n";
//Html body
$message .= "
Hello,
This is a text email, the html version.
Regards,
Your Name";
$message .= "\r\n\r\n--" . $boundary . "--";
//invoke the PHP mail function
wp_mail('', $subject, $message, $headers);