ノードが特定の方法で編集されたときにメールを送信するルールがあります。このルールは、更新されたノードの<textarea>
フィールドの値をメールの本文に入力します。
電子メールはHTML形式(プレーンテキストではなく)で送信されており、<textarea>
はプレーンテキスト(フィルターされたテキストではない)に設定されています。
メールが配信されると、<br />
フィールドに入力したHTMLの改行(<textarea>
)は考慮されません(エンコードされます)。改行のない1つの大きなテキストの集まりです。
HTMLメールで改行が表示されるようにするには、<textarea>
フィールドに何を入力する必要がありますか?
私はもう試した:
<br>
<br />
%0D%0A
<br />
フィールドに入力したHTMLはエンコードされ、HTMLとして処理されません。 <br />
を入力してHTMLのままにするにはどうすればよいですか?
my answer to " ルールを使用して、フィールドコレクションのすべてのアイテムを含む本文を電子メールで送信する方法? "をご覧ください。次のようなルール(エクスポート形式)が含まれています。
{ "rules_field_collection_msg_and_email_body" : {
"LABEL" : "Field Collection msg and eMail body",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "node_view" : [] },
"IF" : [
{ "entity_has_field" : { "entity" : [ "node" ], "field" : "field_article_details" } },
{ "user_has_role" : {
"account" : [ "site:current-user" ],
"roles" : { "value" : { "3" : "3" } }
}
}
],
"DO" : [
{ "variable_add" : {
"USING" : {
"type" : "text",
"value" : "\u003Ch2\u003EThis is a demo of a node containing a field collection ... \u003C\/h2\u003E\r\n\u003Chr \/\u003E\r\n\u003Cstrong\u003EAbout this demo\u003C\/strong\u003E:\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\nThe machine name of the field collection is \u003Cstrong\u003Efield_article_details\u003C\/strong\u003E, and the number of values for it is unlimited.\u003Cbr \/\u003E\r\nThis field collection has these fields:\u003Cbr \/\u003E\u003Cbr \/\u003E\r\n- a text field labeled \u003Cstrong\u003EAuthor\u003C\/strong\u003E with machine name \u003Cstrong\u003Efield_author\u003C\/strong\u003E.\u003Cbr \/\u003E\r\n- a decimal field labeled \u003Cstrong\u003EPrice\u003C\/strong\u003E with machine name \u003Cstrong\u003Efield_price\u003C\/strong\u003E.\u003Cbr \/\u003E\r\n- a boolean field labeled \u003Cstrong\u003EApproval required\u003C\/strong\u003E with machine name \u003Cstrong\u003Efield_approval_required\u003C\/strong\u003E.\u003Cbr \/\u003E\u003Cbr \/\u003E\r\n\u003Chr \/\u003E\r\n\u003Cstrong\u003EPart 1\u003C\/strong\u003E: The list of items contained in the field collection with machine name \u003Cstrong\u003E\u0027field_article_details\u0027\u003C\/strong\u003E looks like so (note the comma to separate each item):\r\n\u003Chr \/\u003E\r\n[node:field_article_details]\r\n \u003Chr \/\u003E\r\n\u003Cstrong\u003EPart 2\u003C\/strong\u003E: The result of a \u003Cstrong\u003ERules loop\u003C\/strong\u003E that iterates for each of the field collection items (using its unique ID) ...\r\n\u003Chr \/\u003E"
},
"PROVIDE" : { "variable_added" : { "variable_for_email_body" : "Variable to use in eMail body" } }
}
},
{ "drupal_message" : { "message" : "\u003Ch2\u003EThis is a demo of a node containing a field collection ... \u003C\/h2\u003E\r\n\u003Chr \/\u003E\r\n\u003Cstrong\u003EAbout this demo\u003C\/strong\u003E:\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\nThe machine name of the field collection is \u003Cstrong\u003Efield_article_details\u003C\/strong\u003E, and the number of values for it is unlimited.\u003Cbr \/\u003E\r\nThis field collection has these fields:\u003Cbr \/\u003E\u003Cbr \/\u003E\r\n- a text field labeled \u003Cstrong\u003EAuthor\u003C\/strong\u003E with machine name \u003Cstrong\u003Efield_author\u003C\/strong\u003E.\u003Cbr \/\u003E\r\n- a decimal field labeled \u003Cstrong\u003EPrice\u003C\/strong\u003E with machine name \u003Cstrong\u003Efield_price\u003C\/strong\u003E.\u003Cbr \/\u003E\r\n- a boolean field labeled \u003Cstrong\u003EApproval required\u003C\/strong\u003E with machine name \u003Cstrong\u003Efield_approval_required\u003C\/strong\u003E.\u003Cbr \/\u003E\u003Cbr \/\u003E\r\n\u003Chr \/\u003E\r\n\u003Cstrong\u003EPart 1\u003C\/strong\u003E: The list of items contained in the field collection with machine name \u003Cstrong\u003E\u0027field_article_details\u0027\u003C\/strong\u003E looks like so (note the comma to separate each item):\r\n\u003Chr \/\u003E\r\n[node:field_article_details]\r\n \u003Chr \/\u003E\r\n\u003Cstrong\u003EPart 2\u003C\/strong\u003E: The result of a \u003Cstrong\u003ERules loop\u003C\/strong\u003E that iterates for each of the field collection items (using its unique ID) ...\r\n\u003Chr \/\u003E" } },
{ "LOOP" : {
"USING" : { "list" : [ "node:field-article-details" ] },
"ITEM" : { "article_details_item" : "article details item" },
"DO" : [
{ "data_set" : {
"data" : [ "variable-for-email-body" ],
"value" : "[variable-for-email-body:value]\u003Cbr \/\u003E\r\nThe Host entity of this field collection item: [article-details-item:Host]\u003Cbr \/\u003E\r\nThe unique ID of the field collection item: [article-details-item:item-id]\u003Cbr \/\u003E\r\nField \u0022field_author\u0022: [article-details-item:field-author]\u003Cbr \/\u003E\r\nField \u0022field_price\u0022: [article-details-item:field-price]\u003Cbr \/\u003E\r\nField \u0022field_approval_required\u0022: [article-details-item:field-approval-required]\u003Cbr \/\u003E\r\n\u003Chr \/\u003E"
}
},
{ "drupal_message" : { "message" : "The Host entity of this field collection item: [article-details-item:Host]\u003Cbr \/\u003E\r\nThe unique ID of the field collection item: [article-details-item:item-id]\u003Cbr \/\u003E\r\nField \u0022field_author\u0022: [article-details-item:field-author]\u003Cbr \/\u003E\r\nField \u0022field_price\u0022: [article-details-item:field-price]\u003Cbr \/\u003E\r\nField \u0022field_approval_required\u0022: [article-details-item:field-approval-required]\u003Cbr \/\u003E\r\n\u003Chr \/\u003E" } }
]
}
},
{ "mail" : {
"to" : [ "site:current-user:mail" ],
"subject" : "Demo of an eMail with a body containing all items of a field collection",
"message" : [ "variable-for-email-body" ],
"language" : [ "" ]
}
}
]
}
}
あなたの質問はその質問の複製ではありませんが、このルールにはあなたのケースにも適用できる解決策が含まれています:
variable_for_email_body
です。variable_for_email_body
のコンテンツを実際に入力するルールアクション(必要に応じてそのコンテンツを置き換え、eメール本文に使用するHTMLタグを含めてください)。[variable-for-email-body]
に等しい。完了...
PS:明らかに、これはD7用です...
コードを試すことができます
/**
* Implements hook_mail().
*/
function mymodule_mail($key, &$message, $params) {
$headers = array(
'MIME-Version' => '1.0',
'Content-Type' => 'text/html; charset=UTF-8; format=flowed',
'Content-Transfer-Encoding' => '8Bit',
'X-Mailer' => 'Drupal'
);
foreach ($headers as $key => $value) {
$message['headers'][$key] = $value;
}
$message['subject'] = $params['subject'];
$message['body'] = $params['body'];
}