我正在尝试在变量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_body
和p_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中的图像时,请记住,为了让收件人的电子邮件客户端看到图像
,必须可以访问这些图像。