使用SAS发送邮件

使用SAS发送邮件,sas,Sas,一天中的好时光! 我写了一些代码,它必须向一个人发送一封带有指定附件的信。以下是frieds的代码: %macro send; %do i=1 %to &numPeople; %let name = &&name&i; %let to = &&UserMail&i; options emailsys=smtp emailhost=smtp.mail.com emailport=25;

一天中的好时光! 我写了一些代码,它必须向一个人发送一封带有指定附件的信。以下是frieds的代码:

%macro send;

%do i=1 %to &numPeople;
%let name = &&name&i;
%let to = &&UserMail&i;


             options emailsys=smtp emailhost=smtp.mail.com emailport=25;
               filename outbox email
               to=('<Bob@mail.com>'                      )

               type='text/html'
               subject="Data for &date_today &to "
               from=  ('< Dataanalist@mail.com >')
               sender=('< Dataanalist@mail.com >')
               importance='high'
             attach=("/folder/statement&i..xlsx" ct='application/excel');



ods html body=outbox style=seaside;
data _null_;
     file outbox;
PUT '<html><body>';
PUT ‘Dear coleagse <br><br>';


      ods html close;

run;

%end;
%mend; %send;
%宏发送;
%i=1%给&n人;
%让name=&&name&i;
%let to=&&UserMail&i;
选项emailsys=smtp emailhost=smtp.mail.com emailport=25;
文件名发件箱电子邮件
to=(“”)
type='text/html'
主题=“日期和日期的数据\u今天和到”
from=('')
发送方=('')
重要性高'
附件=(“/folder/statement&i..xlsx”ct='application/excel');
ods html正文=发件箱样式=海边;
数据为空;
文件发件箱;
放‘’;
写上“亲爱的科莱格”

; ods html关闭; 跑 %结束; %修补;%发送;

问题是,现在这段代码只发送了一封信作为附件(没有文本),第二封信发送给同一个人,因为我需要文本+附件。如何避免第一个不正确的字母?非常感谢。

您的代码中有两条语句指示电子邮件“发送”:

  • 由于您将ODS正文的目的地设置为“发件箱”,因此
    ODS html close
    语句将发送电子邮件
  • 数据步骤的末尾(
    run;
    )将发送电子邮件
  • 如果您删除了这两个ODS语句(因为您似乎没有将ODS用于任何其他用途),您应该只收到一封带有附件和文本的电子邮件

    这里有一篇关于从SAS发送电子邮件的优秀SAS全球论坛论文(PDF):