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
|
u"""%(scriptname)s: Afficher un mail correctement encodé pour son envoi
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
%(scriptname)s [options] <SUBJECT> RECIPIENTS... <<<"BODY" | /usr/sbin/sendmail -i
|
echo "BODY" | %(scriptname)s [options] <SUBJECT> RECIPIENTS... | /usr/sbin/sendmail -t -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.
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-f FROM
|
-F, --from FROM
|
||||||
Spécifier l'adresse de l'expéditeur. Par défaut, utiliser no-reply@univ-reunion.fr
|
Spécifier l'adresse de l'expéditeur. Par défaut, utiliser l'adresse
|
||||||
-a FILE
|
%(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
|
Attacher un fichier au mail. Cette option peut être spécifiée autant de
|
||||||
fois que nécessaire pour attacher plusieurs fichiers.
|
fois que nécessaire pour attacher plusieurs fichiers.
|
||||||
SUBJECT
|
SUBJECT
|
||||||
|
@ -22,7 +24,10 @@ OPTIONS
|
||||||
RECIPIENTS
|
RECIPIENTS
|
||||||
Destinataires du mail. Il faut au moins un destinataire.
|
Destinataires du mail. Il faut au moins un destinataire.
|
||||||
BODY
|
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'
|
DEFAULT_FROM = 'no-reply@univ-reunion.fr'
|
||||||
|
|
||||||
|
@ -48,23 +53,39 @@ def display_help():
|
||||||
def run_umail():
|
def run_umail():
|
||||||
options, longoptions = build_options([
|
options, longoptions = build_options([
|
||||||
('h', 'help', "Afficher l'aide"),
|
('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"),
|
('a:', 'attach=', "Attacher un fichier"),
|
||||||
|
('f:', 'body=', "Spécifier un fichier contenant le corps du message"),
|
||||||
])
|
])
|
||||||
options, args = get_args(None, options, longoptions)
|
options, args = get_args(None, options, longoptions)
|
||||||
mfrom = DEFAULT_FROM
|
mfrom = DEFAULT_FROM
|
||||||
subject = None
|
subject = None
|
||||||
mtos = []
|
mtos = []
|
||||||
|
mccs = []
|
||||||
|
mbccs = []
|
||||||
body = None
|
body = None
|
||||||
|
bodyfile = None
|
||||||
afiles = []
|
afiles = []
|
||||||
for option, value in options:
|
for option, value in options:
|
||||||
if option in ('-h', '--help'):
|
if option in ('-h', '--help'):
|
||||||
display_help()
|
display_help()
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
elif option in ('-f', '--from'):
|
elif option in ('-F', '--from'):
|
||||||
mfrom = value
|
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'):
|
elif option in ('-a', '--attach'):
|
||||||
afiles.append(value)
|
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")
|
if not args[0:1]: die("Vous devez spécifier le sujet")
|
||||||
subject = args[0]
|
subject = args[0]
|
||||||
|
@ -72,7 +93,17 @@ def run_umail():
|
||||||
mtos = args[1:]
|
mtos = args[1:]
|
||||||
|
|
||||||
lines = BLines()
|
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:
|
if not afiles:
|
||||||
# Sans attachement, faire un message simple
|
# Sans attachement, faire un message simple
|
||||||
|
@ -125,6 +156,8 @@ def run_umail():
|
||||||
msg.attach(part)
|
msg.attach(part)
|
||||||
msg['From'] = mfrom
|
msg['From'] = mfrom
|
||||||
msg['To'] = ', '.join(mtos)
|
msg['To'] = ', '.join(mtos)
|
||||||
|
if mccs: msg['Cc'] = ', '.join(mccs)
|
||||||
|
if mbccs: msg['Bcc'] = ', '.join(mbccs)
|
||||||
msg['Subject'] = Header(subject, 'utf-8')
|
msg['Subject'] = Header(subject, 'utf-8')
|
||||||
|
|
||||||
Generator(sys.stdout).flatten(msg)
|
Generator(sys.stdout).flatten(msg)
|
||||||
|
|
Loading…
Reference in New Issue