专栏首页老Z的博客如何用SAS发送邮件

如何用SAS发送邮件

SAS程序猿/媛在工作中可能会碰到需要用SAS来发送邮件通知的问题,如将一个宏程序执行信息或者某个程序生成的结果发送给指定用户。如上图,就是一个宏执行完毕后发送的一个邮件通知,内容包括宏程序是否正确执行完毕、生成结果的路径以及结果的一个简单的概括。下面记录下我用到的两种SAS发送邮件方法:

  1. FILENAME + EMAIL,这个语句可以实现有FORMAT的内容在邮件正文中。比如上图中定义的颜色。程序如下:
data uni(drop=rc: i);
    if _n_=1 then do;
        if 0 then set sashelp.class;
        dcl hash h1(dataset: 'sashelp.class', multidata:'y');
        h1.definekey('WEIGHT');
        h1.definedata(all: 'yes');
        h1.definedone();

        dcl hash h2(dataset: 'sashelp.class');
        dcl hiter hi('h2');
        h2.definekey('WEIGHT');
        h2.definedone();
    end;
    rc1=hi.first();
    do while(rc1=0);
        rc2= h1.find();
        i=0;
        do while(rc2=0 and i < 2);
            i+1;
            rc2=h1.find_next();
        end;
        if i < 2 then do;
            output;
            if i < 2 then h1.remove();
        end;
        rc1=hi.next();
    end;
    h1.output(dataset: 'dup');
run;
  1. 上面是不需要设置邮件信息的,设置的程序如下:
options emailsys='smtp' emailauthprotocol='login' emailhost='smtp.163.com' emailid='uemailid@163.com' emailpw='XXXXXXXX';

filename sende email to='huazizeng@gmail.com' subject='Demo';

data _null_;
    file sende;
    put 'Hello world!';
run;
  1. MAILX,程序如下:
/*正文*/
x 'cat test.txt | mailx -m -s "subject" huazizeng@gmail.com';
/*附件*/
x 'uuencode test.txt attach.txt | mailx -m -s "subject" huazizeng@gmail.com';
/*正文 + 附件*/
x '(cat test.txt; uuencode test.txt attach.txt) | mailx -m -s "subject" huazizeng@gmail.com';

需要注意的是,第二种方法中的文本如果有格式(比如有对齐的格式),那么在邮件正文中的格式可能会不正确,对于这种情况建议用第一种方法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Annotate Facility之森林图

    森林图(Forest plot)是以统计指标和统计分析方法为基础,用数值运算结果绘制出的图型。它在平面直角坐标系中,以一条垂直的无效线(横坐标刻度为1或0)为中...

    专业余码农
  • SAS中哈希表的连接问题

    哈希表即散列表(Hash table),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以...

    专业余码农
  • SAS自动打开数据集及复制变量值

    上个月的今天,我从南到北,从深圳奔赴帝都参加了一个制药行业软件用户组2016中国区年会(PharmaSUG China 2016)。听了两天的报告,收获不少。有...

    专业余码农
  • 详解 equals() 方法和 hashCode() 方法

    Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码。equals()和ha...

    用户1257393
  • 详解equals()方法和hashCode()方法

    Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码。equals()和ha...

    wuweixiang
  • 如何让B端产品差异化,充满竞争力

    ? 来源/作者:李宽wideplum ---- 腾讯SaaS加速器 二期30席项目招募 报名方式 腾讯SaaS加速器,作为腾讯产业加速器的一个重要组成部分,...

    腾讯SaaS加速器
  • 学习笔记-JAVA-考点10-什么情况下需要重写equals和hashcode()两个方法?

    1、加入到hashset中的自定义类的对象,为确保他们不重复,需要对他们的类重写equals()和hashcode()的方法。

    陈黎栋
  • 适合初学者练手的vue小项目(附github源码)

    vue慢慢的成为了前端最受欢迎的框架之一,在很多项目之中开发都能用得到,如今也已经发展到3.0了,可能是因为这个框架可以提高工作效率,因此受到大家的追捧,在之前...

    王小婷
  • Java 设计模式总结

    使用场景:一个类独占一个唯一资源时考虑使用。如蓝牙等 IO 类,或者根,管理器等虚拟类。其他情况应慎重使用。

    sickworm
  • Github Desktop体验

    云深无际

扫码关注云+社区

领取腾讯云代金券