在PL/SQL中将电子邮件中的文本加粗



我正在尝试在变量var_sub_title bold中格式化文本,然后在电子邮件中发送它。

declare
var_sub_title varchar2(60);
var_txt varchar2(500);
var_msg_sub varchar2(60);

begin
select sub_title, txt, subject into var_sub_title, var_txt, var_msg_sub from table where msg_id = :id;
-- SEND EMAIL --
HTMLDB_MAIL.SEND(
P_to   => 'email@mail.com',
p_from =>'email@email.net',
p_body => var_sub_title||CHR(10)||CHR(13)||var_txt||CHR(10)||CHR(13);                
p_subj => var_msg_sub); 
htmldb_mail.push_queue;
end;

如何存档?

正如文档所说,您需要将html格式的文本传递给参数p_body_html,而不是p_body:

纯文本和HTML电子邮件内容。将值传递给p_body,而不传递给p_body_html,结果是一个纯文本消息。将一个值传递给p_bodyp_body_html将产生一个多部分的消息,其中包括纯文本和HTML内容。

所以你的代码应该是:
declare
var_sub_title varchar2(60);
var_txt varchar2(500);
var_msg_sub varchar2(60);

begin
select sub_title, txt, subject into var_sub_title, var_txt, var_msg_sub from table where msg_id = :id;
-- SEND EMAIL --
HTMLDB_MAIL.SEND(
P_to        => 'email@mail.com',
p_from      => 'email@email.net',
p_body_html => '<b>'|| var_sub_title || '</b>' || CHR(10) || CHR(13) || var_txt || CHR(10) || CHR(13);                
p_subj      => var_msg_sub); 
htmldb_mail.push_queue;
end;

收件人的电子邮件客户端对长度和处理HTML电子邮件的能力也有其他限制。

当使用HTMLDB_MAIL。SEND,记住以下内容:

  • 单行不能超过1000个字符。SMTP/MIME规范规定单行不能超过1000个字符。为了遵守这一限制,必须添加回车或换行字符,将p_body或p_body_html参数分成1000个字符或更少的块。如果不这样做,将导致错误的电子邮件消息,包括部分消息或带有多余感叹号的消息。
  • 纯文本和HTML电子邮件内容。将一个值传递给p_body,但不传递给p_body_html,结果是一条纯文本消息。将一个值传递给p_body和p_body_html将产生一个包含纯文本和HTML内容的多部分消息。收件人的电子邮件客户端的设置和功能决定了显示的内容。尽管大多数现代电子邮件客户端都可以读取HTML格式的电子邮件,但请记住,有些用户为了解决安全问题而禁用了此功能。
  • 避免图像。当使用标记引用p_body_html中的图像时,请记住,为了让收件人的电子邮件客户端看到图像
  • ,必须可以访问这些图像。

最新更新