SAS一起使用CSSSTYLE和电子邮件功能

时间:2015-06-10 23:09:04

标签: css sas sas-ods

我无法将CSS样式应用于我将其作为html格式发送的电子邮件。如果我将ODS输出保存到本地文件,我可以应用我的CSS样式。

有人可以帮我解决如何在电子邮件步骤中传递CSS样式的问题吗?

以下是我使用的代码:

FILENAME SETMAIL EMAIL TO=("tester.first@somedomain.com")
         SUBJECT = "This is a test email with applied CSS HTML styles to email " 
         TYPE="text/html" 
         CONTENT_TYPE='text/html' ;
         ODS HTML BODY=setmail
         CSSSTYLE="D:\\myStyles_EMAIL.css";

TITLE "Be focused !! ";      
PROC PRINT DATA=DODEV.RECENT_HIGH_VOL_ORDERS noobs label;
RUN;
ODS HTML CLOSE;
ODS LISTING;

提前致谢。

2 个答案:

答案 0 :(得分:1)

proc template; 
    define style styles.MyMail;
    parent= styles.journal; 
    style body /
        fontfamily="Arial, Helvetica, Sans-serif"
        fontsize= 2
        fontweight=medium
        fontwidth=normal
        color=blg
        backgroundcolor=white
        marginleft=8pt
        marginright=8pt;
    style header /
        fontfamily="Arial, Helvetica, Sans-serif"
        fontsize= 4
        fontweight=bold
        fontstyle=roman
        bordercolor=black
        textalign=center
        backgroundcolor=CX00365B
        color=white;
    style Data / 
        fontfamily="Arial, Helvetica, Sans-serif"
        fontweight=medium
        fontsize=2
        fontstyle=roman
        color=black
        backgroundcolor=white;
    style SystemTitle / 
        fontfamily="Arial, Helvetica, Sans-serif"
        fontweight=bold
        fontsize=6
        fontstyle=roman
        textalign=left
        color=white
        backgroundcolor=CX00365B;
    style SystemTitle2 / 
        fontfamily="Arial, Helvetica, Sans-serif"
        fontweight=bold
        fontsize=4
        fontstyle=roman
        textalign=left
        color=white
        backgroundcolor=CX00365B;
    style SystemTitle3 / 
        fontfamily="Arial, Helvetica, Sans-serif"
        fontweight=medium
        fontsize=2
        fontstyle=roman
        textalign=left
        color=black
        backgroundcolor=white;
     end;
run;

%MACRO SEND_EMAIL_NOTIFICATION(); 

%IF &NUM_CONDS > 0 %THEN

     %DO;       
           FILENAME SETMAIL EMAIL TO=( "hhhhhhhh@xyz.com")
                SUBJECT = "Alert: XXXXXXXX" 
                TYPE="text/html" 
           CONTENT_TYPE='text/html';
           ODS html3  BODY=SETMAIL 
           STYLE=MYMAIL;

           TITLE "Some title 1 ";
           TITLE2 As of &RUN_TIME;
           TITLE3 A total of &NUM_XYZz Some titles, since the last report;
           TITLE4 " " ;

           PROC PRINT DATA=DEV.RECENT_DS noobs label;
           RUN;
           ODS HTML3 CLOSE;
           ODS LISTING;
     %END;
%MEND;

%SEND_EMAIL_NOTIFICATION();

最后通过创建自己的风格完成了要求。而不是使用CSSSTYLE。不确定如何使CSSSTYLE工作。我认为.msg和.html输出导致了这个问题。

答案 1 :(得分:0)

尝试使用ODS HTML3。这会将样式信息直接嵌入到HTML元素中,这样就不会使用CSS来呈现(所有样式信息都在每个HTML标记中重复和明确地声明)。

此ODS目的地非常适合向后兼容。看到Outlook使用的HTML呈现引擎实际上是MS Word引擎,需要很多向后兼容性。

以下是ODS HTML3文档链接:http://support.sas.com/documentation/cdl/en/odsug/61723/HTML/default/viewer.htm#a002596390.ht

但并非所有HTML格式都受到许多电子邮件客户端的支持。这里有一些有用的链接,可以为您提供有关可以做什么和不可以做什么的好背景,以及支持和不支持的内容:

http://24ways.org/2009/rock-solid-html-emails

http://www.emailology.org

http://www.campaignmonitor.com/css/

HTML email align text