renommage de -f en -F. ajout des options -c, -b, -f
This commit is contained in:
parent
5bb78f5583
commit
b9eaeb6428
|
@ -4,17 +4,19 @@
|
|||
u"""%(scriptname)s: Afficher un mail correctement encodé pour son envoi
|
||||
|
||||
USAGE
|
||||
%(scriptname)s [options] <SUBJECT> RECIPIENTS... <<<"BODY" | /usr/sbin/sendmail -i
|
||||
%(scriptname)s [options] <SUBJECT> RECIPIENTS... <<<"BODY" | /usr/sbin/sendmail RECIPIENTS...
|
||||
|
||||
La deuxième forme est pour les implémentations compatible de sendmail qui
|
||||
ignorent l'argument -i. Il faut alors spécifier tous les destinataires en
|
||||
argument.
|
||||
echo "BODY" | %(scriptname)s [options] <SUBJECT> RECIPIENTS... | /usr/sbin/sendmail -t -i
|
||||
|
||||
OPTIONS
|
||||
-f FROM
|
||||
Spécifier l'adresse de l'expéditeur. Par défaut, utiliser no-reply@univ-reunion.fr
|
||||
-a FILE
|
||||
-F, --from FROM
|
||||
Spécifier l'adresse de l'expéditeur. Par défaut, utiliser l'adresse
|
||||
%(DEFAULT_FROM)s
|
||||
-c, --cc CCRECIPIENTS
|
||||
Destinataires en copie du message, séparés par une virgule.
|
||||
Cette option peut être spécifiée autant de fois que nécessaire.
|
||||
-b, --bcc BCCRECIPIENTS
|
||||
Destinataires en copie cachée du message, séparés par une virgule.
|
||||
Cette option peut être spécifiée autant de fois que nécessaire.
|
||||
-a, --attach FILE
|
||||
Attacher un fichier au mail. Cette option peut être spécifiée autant de
|
||||
fois que nécessaire pour attacher plusieurs fichiers.
|
||||
SUBJECT
|
||||
|
@ -22,7 +24,10 @@ OPTIONS
|
|||
RECIPIENTS
|
||||
Destinataires du mail. Il faut au moins un destinataire.
|
||||
BODY
|
||||
Corps du mail"""
|
||||
Corps du mail. Il est spécifié sur l'entrée standard.
|
||||
-f, --body FILE
|
||||
Spécifier un fichier qui contient le corps du message, au lieu de lire
|
||||
sur l'entrée standard."""
|
||||
|
||||
DEFAULT_FROM = 'no-reply@univ-reunion.fr'
|
||||
|
||||
|
@ -48,23 +53,39 @@ def display_help():
|
|||
def run_umail():
|
||||
options, longoptions = build_options([
|
||||
('h', 'help', "Afficher l'aide"),
|
||||
('f:', 'from=', "Spécifier l'expéditeur"),
|
||||
('F:', 'from=', "Spécifier l'expéditeur"),
|
||||
('c:', 'cc=', "Destinataires en copie"),
|
||||
('b:', 'bcc=', "Destinataires en copie cachée"),
|
||||
('a:', 'attach=', "Attacher un fichier"),
|
||||
('f:', 'body=', "Spécifier un fichier contenant le corps du message"),
|
||||
])
|
||||
options, args = get_args(None, options, longoptions)
|
||||
mfrom = DEFAULT_FROM
|
||||
subject = None
|
||||
mtos = []
|
||||
mccs = []
|
||||
mbccs = []
|
||||
body = None
|
||||
bodyfile = None
|
||||
afiles = []
|
||||
for option, value in options:
|
||||
if option in ('-h', '--help'):
|
||||
display_help()
|
||||
sys.exit(0)
|
||||
elif option in ('-f', '--from'):
|
||||
elif option in ('-F', '--from'):
|
||||
mfrom = value
|
||||
elif option in ('-c', '--cc'):
|
||||
mccs.extend(value.split(','))
|
||||
elif option in ('-b', '--bcc'):
|
||||
mbccs.extend(value.split(','))
|
||||
elif option in ('-a', '--attach'):
|
||||
afiles.append(value)
|
||||
elif option in ('-f', '--body'):
|
||||
bodyfile = value
|
||||
if bodyfile == "-":
|
||||
bodyfile = None
|
||||
elif not path.exists(bodyfile):
|
||||
die("%s: fichier introuvable" % bodyfile)
|
||||
|
||||
if not args[0:1]: die("Vous devez spécifier le sujet")
|
||||
subject = args[0]
|
||||
|
@ -72,7 +93,17 @@ def run_umail():
|
|||
mtos = args[1:]
|
||||
|
||||
lines = BLines()
|
||||
lines.readlines(sys.stdin)
|
||||
close = False
|
||||
if bodyfile is None:
|
||||
inf = sys.stdin
|
||||
close = False
|
||||
else:
|
||||
inf = open(bodyfile, 'rb')
|
||||
close = True
|
||||
try:
|
||||
lines.readlines(inf)
|
||||
finally:
|
||||
if close: inf.close()
|
||||
|
||||
if not afiles:
|
||||
# Sans attachement, faire un message simple
|
||||
|
@ -125,6 +156,8 @@ def run_umail():
|
|||
msg.attach(part)
|
||||
msg['From'] = mfrom
|
||||
msg['To'] = ', '.join(mtos)
|
||||
if mccs: msg['Cc'] = ', '.join(mccs)
|
||||
if mbccs: msg['Bcc'] = ', '.join(mbccs)
|
||||
msg['Subject'] = Header(subject, 'utf-8')
|
||||
|
||||
Generator(sys.stdout).flatten(msg)
|
||||
|
|
Loading…
Reference in New Issue