如何将信息填充到电子邮件列中

时间:2018-07-10 13:30:58

标签: oracle plsql smtp gmail

我正在尝试通过Gmail的具有SMTP功能的Oracle数据库发送电子邮件。

信息是通过数据库中的查询选择的,因此,对于每一列,我都用RPAD设置了空格。我用以下结构制作消息:

l_mailtext := l_mailtext || CHR(9) || LPAD(L_NUMBER, 6, '0') || CHR(9) ||
                  CHR(9) || CHR(9) || '  ' || I.CONTRACT_REF_NO || CHR(9) ||
                  RPAD(I.SPEI_TRACE_NO, 40, ' ') ||
                  RPAD(I.REMARKS, 30, CHR(32)) || 
                  rpad(I.ACTUAL_AMOUNT, 30, ' ') || 
                  rpad(I.PC_STATUS, 30, ' ') || CHR(10);

在执行过程中,我检查了已发送的邮件,信息显示如下;这是通过Google Chrome浏览器中的Gmail。

Gmail in Google Chrome.

我将相同的信息复制并粘贴到Notepad ++工作表中,它显示了正确的布局:

Notepad++

因此,我需要信息类似于Gmail中的记事本++。我不知道是否有用于填充信息的ASCII字符。因为“ Gmail邮件中的“付款方式”列中的“金额”列中的信息会混乱。

1 个答案:

答案 0 :(得分:0)

您的数据 已正确填充。您已经在NP ++中证明了这一点。 Gmail以比例字体显示您的电子邮件正文,其中每个字符的宽度不同。我认为,您有两种选择:

  1. 发送带有Content-type: text/html标头的电子邮件,并使其成为HTML正文(我认为,您可以这样做)。您可能在内容周围包裹了<pre>标签,这告诉用户代理以固定宽度的字体呈现它并保留间距。

  2. 您可以将内容发送为.txt附件,该附件可能会以Notepad ++之类的格式打开,并以固定宽度的字体显示。如果他们将.txt附件设置为在Wordpad中打开,那将不是真的。

请注意,这实际上与Gmail无关。这与收件人使用的邮件客户端以及您如何标识内容有关。今天,可能是Gmail,明天,它们可能会切换到Outlook或Thunderbird。