X-Git-Url: https://git.sthu.org/?p=smailq.git;a=blobdiff_plain;f=smailq;h=d719d43a283e916d2a15299ba3a5218242eee328;hp=c42b98010829077e6910abe41ffd6b7f3da5366a;hb=4fbe052b37ddedb7ae917916f6670ce6242e3b01;hpb=6033099316d2081a9502bb066908a1ac670e519b diff --git a/smailq b/smailq index c42b980..d719d43 100755 --- a/smailq +++ b/smailq @@ -160,9 +160,11 @@ class MailQueue: info = {} info['ctime'] = time.ctime(os.path.getctime(mailfn)) info['size'] = os.path.getsize(mailfn) + info['to'] = "" + info['subject'] = "" - with open(mailfn, "r") as f: - mail = f.readlines() + with open(mailfn, "rb") as f: + mail = f.read().decode('utf8', 'replace').splitlines() for l in mail: if l.startswith("Subject:"): @@ -173,6 +175,8 @@ class MailQueue: if l.startswith("To:"): info['to'] = l[3:].strip() break + if l.startswith("Cc:"): + info['to'] = l[3:].strip() return info @@ -230,7 +234,7 @@ class MailQueue: # Read the mail mailfn = self.conf.getmailfn(id) - mailf = open(mailfn, "r") + mailf = open(mailfn, "rb") # Read the options msaargsfn = self.conf.getmsaargsfn(id) @@ -280,7 +284,7 @@ class MailQueue: # Write the mail mailfn = self.conf.getmailfn(id) - with open(mailfn, "w") as f: + with open(mailfn, "wb") as f: f.write(mail) # Write the options @@ -391,7 +395,7 @@ OPTIONS: if __name__ == "__main__": - conffn = os.path.expanduser("~/.smailq.conf") + conffn_list = [os.path.expanduser("~/.smailq.conf"), "/etc/smailq.conf"] cmd = "--list" nooptargs = [] @@ -412,7 +416,7 @@ if __name__ == "__main__": '--deliver']: cmd = opt elif opt in ['-C', '--config']: - conffn = arg + conffn_list = [arg] elif opt in ['-v', '--verbose']: verbose = True quiet = False @@ -428,8 +432,9 @@ if __name__ == "__main__": sys.exit(os.EX_USAGE) # Reading config file - if not os.path.isfile(conffn): - printerr("No such config file:", conffn) + conffn = next((f for f in conffn_list if os.path.isfile(f)), None) + if conffn is None: + printerr("No config file found: " + str(conffn_list)) sys.exit(os.EX_IOERR) conf = None try: @@ -454,7 +459,7 @@ if __name__ == "__main__": mq = MailQueue(conf) if cmd == "--send": - mail = sys.stdin.read() + mail = sys.stdin.buffer.read() mq.sendmail(mail, nooptargs) elif cmd == "--list": mq.listqueue()