UTL_SMTP.WRITE_数据-在Oracle中返回双点

UTL_SMTP.WRITE_数据-在Oracle中返回双点,oracle,smtp,Oracle,Smtp,我正在尝试在oracle中以邮件附件的形式发送以下格式的内容 ADV|ESCROW|514838|20130823 CRN|SF|20130727|20130823|20130823|0.00|-25.28|0.00|0.00|0.00|-25.28 CCT|B|0.00|* CCT|E|0.00|* CCT|I|0.00|* CCT|N|0.00|* CCT|R|0.00|* CCT|S|0.00|* CRN|SF|20130726|20130823|20130823|0.00|35638.7

我正在尝试在oracle中以邮件附件的形式发送以下格式的内容

ADV|ESCROW|514838|20130823
CRN|SF|20130727|20130823|20130823|0.00|-25.28|0.00|0.00|0.00|-25.28
CCT|B|0.00|*
CCT|E|0.00|*
CCT|I|0.00|*
CCT|N|0.00|*
CCT|R|0.00|*
CCT|S|0.00|*
CRN|SF|20130726|20130823|20130823|0.00|35638.70|0.00|0.00|0.00|35638.70
CCT|B|0.00|*
CCT|E|0.00|*
CCT|I|0.00|*
CCT|N|0.00|*
CCT|R|0.00|*
CCT|S|0.00|*
PRN|SF|20130725|20130822|0.00
PCT|B|0.00|*
PCT|E|0.00|*
PCT|I|0.00|*
PCT|N|0.00|*
PCT|R|0.00|*
PCT|S|0.00|*
CRN|SF|20130725|20130823|20130822|0.00|1672.95|0.00|0.00|0.00|1672.95
CCT|B|0.00|*
CCT|E|0.00|*
CCT|I|0.00|*
CCT|N|0.00|*
CCT|R|0.00|*
CCT|S|0.00|*
这些内容是巨大的。大约109250个字符。因此,我使用下面的代码发送此文本

l_offset  number := 1;
l_amount number := 1500;    
while l_offset < dbms_lob.getlength(l_in_mail_attach) loop
   utl_smtp.write_data(smtp_connection,
                       dbms_lob.substr(l_in_mail_attach,l_amount,l_offset));
   l_offset  := l_offset + l_amount ;
   l_amount := least(1900,dbms_lob.getlength(l_in_mail_attach) - l_amount);
 end loop; 

任何人都可以建议如何解决这个问题。

当一个子字符串的开头有一个前导点时,就会发生点重复

根据: 应用程序必须确保body参数的内容符合MIME(RFC822)规范

数据例程用一个字符串终止消息。序列(一行开头的单个周期), 按照RFC821的要求。它还可以翻译任意序列的数据。(单周期)在体内 到(双周期)。此转换提供RFC821第4.5.2节所述的透明度

在编写邮件正文和附件时,请尝试通过替换以下内容来隐藏点:

utl_smtp.write_data(smtp_connection,
                       dbms_lob.substr(l_in_mail_attach,l_amount,l_offset));
与:


当一个子串的开头有一个前导点时,就会发生点复制

根据: 应用程序必须确保body参数的内容符合MIME(RFC822)规范

数据例程用一个字符串终止消息。序列(一行开头的单个周期), 按照RFC821的要求。它还可以翻译任意序列的数据。(单周期)在体内 到(双周期)。此转换提供RFC821第4.5.2节所述的透明度

在编写邮件正文和附件时,请尝试通过替换以下内容来隐藏点:

utl_smtp.write_data(smtp_connection,
                       dbms_lob.substr(l_in_mail_attach,l_amount,l_offset));
与:

utl_smtp.write_RAW_data
( smtp_connection
, utl_raw.cast_to_raw( dbms_lob.substr ( l_in_mail_attach, l_amount, l_offset ) )
);