Sas宏发送电子邮件

时间:2016-07-12 14:42:44

标签: sas sas-macro

您好我正在尝试使用宏从sas EG发送邮件。请问我有两个问题:

  1. 此代码生成错误:"没有匹配的%DO语句 %END。该陈述将忽略"
  2. 如何更改输出httml样式?

    %macro desicion;
       %if &dsempty=0 %then %do
          filename outbox email
          to=('smdy@mail.com')
    
          type='text/html'
          subject='Achtung!'
          from=('Robot@sender');
    
          ods html body=outbox rs=none;
    
          proc report data=work.final1 style=Analisis;
          run;
    
          ods html close;    
       %end;
    %mend;
    

1 个答案:

答案 0 :(得分:1)

1)你忘了%do之后的;

%macro desicion;
%if &dsempty=0 %then %do;
               filename outbox email
               to=('smdy@mail.com')

               type='text/html'
               subject='Achtung!'
               from=('Robot@sender');

      ods html body=outbox rs=none;

      proc report data=work.final1 style=Analisis;
      run;

      ods html close;

%end;
%mend;

2)问题有点宽泛。

您可以应用模板样式,但这并不总能提供所需的结果 我所做的是构建一个完整的html电子邮件,其中包含像这样的集成css

    data _null_;
        file mymail;
        set DS end=eof;

        if _n_=1 then do;
            put '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
            put '<html xmlns="http://www.w3.org/1999/xhtml">';
            put '<head>';
            put '  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
            put '  <title>TITLE</title>';
            put '  <style type="text/css">';
            put '    .row{width:100%;} ';
            put '    body {margin:0; padding:0;} ';
            ...

编辑:这里有关于这种方法的更多解释的链接(参见第3页)
http://support.sas.com/resources/papers/proceedings10/060-2010.pdf