You need to enable JavaScript to run this app. PL/SQL使用HTMLDB_MAIL发邮件时如何将变量内容设为加粗
优惠活动
大模型
产品
解决方案
定价
更多

PL/SQL使用HTMLDB_MAIL发邮件时如何将变量内容设为加粗

实现邮件子标题加粗的PL/SQL调整方案

先修复原代码的基础语法问题

  • from table处使用了Oracle保留字table作为表名,会触发语法报错,需替换为实际业务表名
  • p_body参数行末尾误写了分号,打断了HTMLDB_MAIL.SEND的参数列表,需替换为逗号分隔后续参数
  • 纯文本格式的邮件不支持排版格式,无法实现var_sub_title的加粗效果,需要基于HTML格式的邮件能力实现需求

核心实现逻辑

  1. 用HTML加粗标签<b>包裹var_sub_title变量内容,实现加粗效果
  2. 将原代码中用于换行的CHR(10)||CHR(13)替换为HTML通用换行标签<br>,保证HTML模式下排版正常
  3. 给邮件发送方法传入HTML格式的内容参数,指定正确的内容类型,让邮件客户端能正常解析格式

改造后可直接使用的代码

declare
  var_sub_title varchar2(60);
  var_txt varchar2(500);
  var_msg_sub varchar2(60);
  var_html_body varchar2(2000);
begin
  select sub_title, txt, subject 
    into var_sub_title, var_txt, var_msg_sub 
    from 实际业务表名 -- 替换为原查询使用的正式表名
   where msg_id = :id;

  -- 拼接带加粗格式的邮件正文
  var_html_body := '<b>' || var_sub_title || '</b>' 
                   || '<br><br>' 
                   || var_txt;

  -- 发送HTML格式邮件
  HTMLDB_MAIL.SEND(
       p_to        => 'email@mail.com',
       p_from      => 'email@email.net',
       p_body      => var_html_body,
       p_subj      => var_msg_sub,
       p_body_html => var_html_body,
       p_mimetype  => 'text/html; charset=utf-8'
  );               
  htmldb_mail.push_queue;
end;

注意事项

  • 如果使用的早期版本HTMLDB_MAIL没有p_body_html、p_mimetype参数,可直接在p_body中拼接HTML标签,同时调用时指定邮件内容类型为HTML,防止加粗标签被当成普通文本展示
  • 纯文本邮件协议本身不支持加粗这类格式控制,不要尝试在纯文本流中强行实现加粗,否则会在不同邮件客户端出现显示混乱的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 14:54:05