You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在发送至Gmail的邮件告警中正确显示换行符?

解决Prometheus告警在Gmail中换行符失效的问题

嘿,我刚好碰到过一模一样的问题!你这情况是因为Prometheus Alertmanager和Gmail对文本格式的处理方式没对上,咱们一步步来解决:

问题根源

你用\n或者<br>没效果,大概率是两个原因:

  1. 你在告警规则里的YAML多行写法没用到正确的块标量语法,导致换行被YAML解析成了空格;
  2. Alertmanager默认发的是纯文本邮件,<br>标签在纯文本里就是普通字符串,根本不会被Gmail当成换行解析;而\n可能被Alertmanager转义成了字面量,所以直接显示出来了。

解决方案1:用YAML块标量实现纯文本换行

这是最省心的办法,不用改Alertmanager的模板配置,只要调整告警规则里的description写法就行。用YAML的|符号来定义多行字符串,它会完整保留你的换行:

alert: KubernetesPodImagePullBackOff
  expr: kube_pod_container_status_waiting_reason{reason=~"ContainerCreating|CrashLoopBackOff|ErrImagePull|ImagePullBackOff"} > 0
  for: 1s
  labels:
    severity: warning
  annotations:
    summary: "Kubernetes pod crash looping (instance {{ $labels.instance }})"
    description: |
      Pod {{ $labels.pod }} is crash looping
      VALUE = {{ $value }}
      LABELS: {{ $labels }}

注意这里的|后面的每一行都要保持一致的缩进(和description的冒号后对齐就行),这样YAML会把每一行的换行完整保留,Alertmanager发送纯文本邮件时,Gmail就能识别这些换行并正常显示了。


解决方案2:配置Alertmanager发送HTML邮件用<br>换行

如果非要用HTML标签来控制格式,就得改Alertmanager的邮件模板和接收器配置:

  1. 修改Alertmanager接收器配置,指定发送HTML格式的邮件:
receivers:
- name: 'gmail-alerts'
  email_configs:
  - to: '你的Gmail邮箱地址'
    html: '{{ template "custom-email.html" . }}' # 指定用自定义HTML模板
  1. 创建自定义HTML模板文件(比如custom-email.html),把注解里的\n替换成<br>,并确保标签不被转义:
{{ define "custom-email.html" }}
<html>
<head>
  <title>{{ .CommonLabels.alertname }}</title>
</head>
<body>
  <h2>{{ .CommonAnnotations.summary }}</h2>
  <!-- 把\n替换成<br>,并用safeHTML确保标签生效 -->
  <p>{{ replace .CommonAnnotations.description "\n" "<br>" | safeHTML }}</p>
</body>
</html>
{{ end }}
  1. 在Alertmanager配置里加载模板文件:
templates:
- '/etc/alertmanager/templates/custom-email.html' # 替换成你的模板路径

这样配置后,你在告警规则里写的\n会被模板转换成<br>,Gmail收到HTML邮件后就会正确解析换行。


为什么之前的方法无效?

  • 你之前的YAML多行写法没加|,YAML会自动把多行内容合并成一行空格,所以换行没了;
  • 直接用<br>但没开HTML邮件模式,Gmail把它当成了普通字符串,自然不会换行。

选其中一个方案测试下,应该就能解决Gmail里换行被原样打印的问题了!

内容的提问来源于stack exchange,提问作者user630702

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:04:56