Отправка электронного письма от SAS с текстом отчета И в теле - PullRequest
0 голосов
/ 11 июня 2018

Я создал отчет в SAS EG 7.2 и получил SAS, чтобы отправить его по электронной почте в теле письма, однако я не могу добавить текст.У меня есть этот код:

filename mymail email   
                    to=('mail@email.com')
                    subject='Report'
                    from='mail@email.com'
                    Content_type="text/html";

ods _all_  close;
ODS ESCAPECHAR='^'; 
ods html body=mymail  style=minimal;

proc report data=data… 
…
run;

ods html close;
ods _all_ close;

Это отлично отправляет мою электронную почту.И я могу сделать это, чтобы добавить текст

filename mymail email   
                        to=('mail@email.com')
                        subject='Report'
                        from='mail@email.com'
                        Content_type="text/html";

ods _all_  close;
ODS ESCAPECHAR='^'; 
ods html body=mymail  style=minimal;

DATA _null_;
file mymail;
Put "Hello,"//
"You are recieving this mail because:"//;
if &warn1=1 then do;
put "&w1." //; end;
if &warn2=1 then do;
put "&w2." //; end;
put
"Regards,"//
"Chris";
run;

ods html close;
ods _all_ close;

Но я не могу сделать то и другое?Если я добавлю текстовый шаг и отчет о процедуре, я только увижу отчет в полученном электронном письме.Есть идеи?

Заранее спасибо:)

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Ваше решение о добавлении текста в сам файл HTML звучит лучше всего.

У вашего исходного кода есть пара проблем.

Сначала возник конфликт доступа.Шаг DATA _NULL_ пытается записать в тот же файл, в который все еще записывает процесс ODS HTML.Разве вы не получили сообщение об ошибке?или, может быть, два отдельных электронных письма?

Второе, даже если вам удалось записать текст в тот же файл, в котором создавался HTML-файл ODS, он будет до или после тегов <HTML> .. </HTML> вокруг отчета.генерируется ODS HTML.Как таковой он, вероятно, будет игнорироваться получателем.

0 голосов
/ 11 июня 2018

Если кому-то интересно, мне удалось решить эту проблему, добавив следующую строку непосредственно перед отчетом о процедуре:

ods html text="<div>Please find below the Reports </div> <br><br> There are &&totalwarnings. warnings for the last hour:<br><br>";

%if &warn1=1 %then %do;
ods html text="&&w1."; %end;
%if &warn2=1 %then %do;
ods html text="&&w2."; %end;
...