SAS-发送电子邮件,将空白添加到HTML

时间:2019-04-18 13:50:25

标签: sas

当我尝试发送单个HTML字符串的电子邮件时,SAS在该字符串的中间插入一个空格字符,从而放弃了HTML。例如,如果我运行以下代码:

FILENAME outbox EMAIL
   TO = "address@domain.com" 
   SUBJECT = "test" 
   CONTENT_TYPE="text/html";

DATA _NULL_;
   FILE outbox;
   PUT "<table><tr><th>column1</th><th>column2</th><th>column3</th></tr><tr><td>filler</td><td>filler</td><td>filler</td></tr><tr><td>filler</td><td>filler</td><td>filler</td></tr><tr><td>filler</td><td>filler</td><td>filler</td></tr><tr><td>filler</td><td>filler</td><td>filler</td></tr></table>";
RUN;

我收到以下电子邮件,由于SAS在</td>之间添加了空格,因此表被删除。

enter image description here

我知道我可以拆分字符串,或将其存储在数据集的不同行中,然后以这种方式发送电子邮件,但是现在我很好奇。有谁知道为什么SAS要这么做?

更新:

如果我用不同的格式设置字符串,就像这样:

DATA _NULL_;
   FILE outbox;
   PUT "<table>
         <tr>
            <th>column1</th>
            <th>column2</th>
            <th>column3</th>
         </tr>
         <tr>
            <td>filler</td>
            <td>filler</td>
            <td>filler</td>
         </tr>
         <tr>
            <td>filler</td>
            <td>filler</td>
            <td>filler</td>
         </tr>
         <tr>
            <td>filler</td>
            <td>filler</td>
            <td>filler</td>
         </tr>
         <tr>
            <td>filler</td>
            <td>filler</td>
            <td>filler</td>
         </tr>
         </table>";
RUN;

将空白移动到单元格(2,1)中“填充”的“ f”和“ i”之间。我认为这是由于我添加到字符串本身以使其格式化的所有额外空格所致。无论采用哪种格式,似乎每256个字符都会添加一个空白。

2 个答案:

答案 0 :(得分:0)

您忘了在表格末尾关闭表格行标签之一,请确保已正确关闭所有标签,然后在电子邮件中没有收到任何此问题。

答案 1 :(得分:0)

</tr>之前添加</table>,并将字符串拆分为多个字符串,因为“ PUT”可以接受希望少于262个字符的字符串:

    DATA _NULL_;
   FILE outbox;
   PUT "<table>
        <tr>
        <th>column1</th> <th>column2</th> <th>column3</th>
        </tr>";
    put "<tr>
        <td>filler</td> <td>filler</td> <td>filler</td>
        </tr>";
    put "<tr>
        <td>filler</td> <td>filler</td> <td>filler</td>
        </tr>";
    put "<tr>
        <td>filler</td> <td>filler</td> <td>filler</td> 
        </tr>";
    put "<tr>
        <td>filler</td> <td>filler</td> <td>filler</td>
        </tr>
        </table>";
RUN;