我尝试通过电子邮件发送包含html变量的模板文件,例如{{user_name}}
,html在我的邮件客户端中正确呈现,但{{user_name}}
无法解析并显示作为字符串{{user_name}}
- name: Send e-mail to a bunch of users, attaching files
mail:
host: mail.server.com
subtype: html
subject: email template
body: '{{ lookup("file", "roles/binding/templates/email.j2") }}'
to: "{{ user_email }}"
示例输出
Hi {{ user_name }} ....
期望的输出
Hi John Doe
有关如何解决此问题的任何想法?
答案 0 :(得分:1)
您可以在发送邮件的任务之前添加template
任务来处理文件。例如:
- name: prepare mail body from template
template:
src: email.j2
dest: /tmp/email.out
变量替换将在此任务中进行。
然后,您将使用您已准备好的任务发送邮件,但body
必须指向/tmp/mail.out
文件。
答案 1 :(得分:1)
只需使用file
参数中的template
lookup plugin替换body
查找插件:
body: '{{ lookup("template", "roles/binding/templates/email.j2") }}'