FAQ SASConsultez toutes les FAQ
Nombre d'auteurs : 14, nombre de questions : 232, dernière mise à jour : 20 décembre 2012
- Comment écrire un mail avec ou sans pièce jointe depuis SAS ?
- Comment désactivé la fenêtre d'attente lors de l'envoi d'un mail depuis SAS ?
- Comment à partir d'une table SAS contenant les adresses e-mail et des chemins de fichiers, peut-on envoyer plusieurs fichiers en pièces jointes d'un mail avec SAS 8.2 ?
- Depuis SAS, comment envoyer un e-mail en insérant du texte formaté dans le corps du message ?
Pour envoyer un mail à partir de SAS, vous devez :
- définir le nom du destinataire du message à l'aide du "filename" ;
- définir l'objet du message à l'aide du "subject" ;
- écrire votre message dans une table tampon (une table prenant le nom _NULL_)
Le code SAS ci-dessous illustre l'envoi d'un mail :
filename
mail email '
person@mail.com
'
subject=
'
Envoi
mail
'
;
DATA
_
null_
;
file
mail;
put
'
Vous
pouvez
écrire
ici
votre
texte
'
;
run
;
Le programme ci-dessus envoie un mail à "person@mail.com", avec comme sujet de mail "Envoi mail" et le contenu du mail est "Vous pouvez écrire ici votre texte".
Pour envoyer une pièce jointe dans votre e-mail vous devez utiliser l'option "attach" comme suit :
ods rtf body=
'
d:\temp.rtf
'
;
proc
print DATA
=
sashelp.
class
;
run
;
ods rtf close;
filename
mail email '
person@mail.com
'
subject=
'
Envoi
mail
'
attach=
'
d:\temp.rtf
'
;
DATA
_
null_
;
file
mail;
put
'
Ceci
est
le
corps
du
message
'
;
run
;
Le mail précédent est envoyé à person@mail.com, avec la pièce jointe temp.rtf
Lors de l'envoi d'un mail par SAS, une fenêtre de confirmation s'ouvre automatiquement pour demander la confirmation de l'envoi. Pour enlever cette fenêtre vous pouvez télécharger le logiciel ExpressClickYes à l'adresse suivante : Express ClickYes
Voici un exemple de code SAS permettant de transmettre plusieurs fichiers par messagerie.
La table "mail" contient les adresses ainsi que les chemins des fichiers à transmettre.
data
mail;
input
adress $18.
file
$20.
file2 $20.
;
cards
;
nom@
adress.
com "c:\tests\data
.
sas" "c:\tests\axis.
sas"
nom1@
adress1.
com "c:\tests\data
.
sas" "c:\tests\axis.
sas"
nom2@
adress2.
com "c:\tests\data
.
sas" "c:\tests\axis.
sas"
nom3@
adress3.
com "c:\tests\data
.
sas" "c:\tests\axis.
sas"
;
run
;
filename
reports email "nom@
adress.
com";
data
_
null_
;
file
reports;
length adress $ 30 file
$ 21;
set
mail;
put
'
!EM_TO!
'
adress;
put
'
!EM_SUBJECT!
Report
for
'
file
;
put
adress '
,
'
;
put
'
Report
for
'
file
file2 '
.
'
;
put
'
!EM_ATTACH!
(
'
file
'
'
file2'
)
'
;
put
'
!EM_SEND!
'
;
put
'
!EM_NEWMSG!
'
;
put
'
!EM_ABORT!
'
;
run
;
L'utilisation de l'instruction Filename Email permet d'envoyer un e-mail depuis SAS.
Pour formater du texte directement dans le corps du message, il faut utiliser l'instruction PUT combinée à l'instruction Style (alias S) et ses options associées. Le programme ci-dessous, permet de mettre des caractères en gras, en italique, d'augmenter la taille de la police et également de modifier la couleur :
FILENAME
M EMAIL
TO
=
"destinataire@
fra.
sas.
com"
FROM
=
"expediteur@
fra.
sas.
com"
SUBJECT=
"TEST EMAIL FORMATE"
TYPE=
"TEXT/
HTML"
CONTENT_
TYPE=
"TEXT/
HTML";
ODS LISTING CLOSE;
ODS HTML BODY=
M STYLE=
STYLES.
DEFAULT RS=
NONE;
ODS ESCAPECHAR=
'
*
'
;
DATA
_
NULL_
;
FILE
PRINT;
PUT
'
CE
TEXTE
EST
EN
*S={FONT_WEIGHT=BOLD}GRAS*S={}
'
;
PUT
'
ET
CELUI-CI
EST
EN
*S={FONT_STYLE=ITALIC}italique*S={}.
'
;
PUT
'
CELUI-CI
EST
*S={FONT_SIZE=14}GRAND*S={}
ET
CELUI-CI
NON
'
;
PUT
'
*S={FOREGROUND=RED}LA
COULEUR
*S={}
PEUT
AUSSI
ETRE
MODIFIEE.
'
;
RUN
;
ODS HTML CLOSE;
ODS LISTING;
FILENAME
M;
Attention de ne pas oublier l'instruction ODS ESCAPECHAR, pour que le caractère '*' soit bien reconnu dans les instructions PUT.
N.B. Si vous utilisez un système d'exploitation 64 bits et Outlook, il est possible que l'envoi de mail ne fonctionne pas. Certaines versions d'Office sont restées en 32bits et SAS ne peut pas les utiliser. Vous aurez alors un message vous avertissant qu'aucun logiciel d'envoi de mail par défaut n'a été trouvé. Vous devrez avoir recours à un serveur SMTP : http://support.sas.com/kb/19/767.html