3

我无法将我的 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;

提前致谢。

4

2 回答 2

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 输出导致了这个问题。

于 2015-06-15T23:01:46.533 回答
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 电子邮件对齐文本

于 2015-06-10T23:55:43.023 回答