Commit b55db6bc by Owo Sugiana

Bug fixed need reconnect

1 parent efe2453e
...@@ -46,31 +46,38 @@ def save_status(status=0, jawaban='OK'): ...@@ -46,31 +46,38 @@ def save_status(status=0, jawaban='OK'):
save_result(d, 'status.json') save_result(d, 'status.json')
def send(server): def send(server, job_files):
conf = registry['conf'] conf = registry['conf']
job_dir = conf['job_dir'] job_dir = conf['job_dir']
job_files = os.listdir(job_dir)
if not job_files:
return
log = getLogger('send') log = getLogger('send')
job_files.sort() job_files.sort()
job_file = os.path.join(job_dir, job_files[0]) for job_file in job_files:
result_file = os.path.split(job_file)[-1] result_file = job_file
d = file2dict(job_file) job_file = os.path.join(conf['job_dir'], job_file)
os.remove(job_file) d = file2dict(job_file)
result = 'id' in d and dict(id=d['id']) or dict() os.remove(job_file)
try: result = 'id' in d and dict(id=d['id']) or dict()
doc = dict2doc(d) err = None
log.info(f'Send {clean_log(d)}') try:
server.sendmail( doc = dict2doc(d)
conf['username'], d['penerima'], doc.as_string()) log.info(f'Send {clean_log(d)}')
result['status'] = 0 server.sendmail(
result['jawaban'] = 'OK' conf['username'], d['penerima'], doc.as_string())
except Exception as e: result['status'] = 0
result['status'] = -3 result['jawaban'] = 'OK'
result['jawaban'] = exception_message() except smtplib.SMTPSenderRefused as err:
log.error(f'Result {result}') msg = str(err)
save_result(result, result_file) except smtplib.SMTPServerDisconnected as err:
msg = str(err)
except Exception as err:
msg = exception_message()
if err:
result['status'] = -3
result['jawaban'] = msg
log.error(f'Result {result}')
save_result(result, result_file)
if err:
return
def get_option(argv): def get_option(argv):
...@@ -90,17 +97,21 @@ def main(argv=sys.argv[1:]): ...@@ -90,17 +97,21 @@ def main(argv=sys.argv[1:]):
log = getLogger('main') log = getLogger('main')
cf['tls'] = cf['tls'] == 'true' cf['tls'] = cf['tls'] == 'true'
cf['port'] = int(cf['port']) cf['port'] = int(cf['port'])
log.debug(f'Connect to {cf["host"]}:{cf["port"]}') first = True
try: try:
with smtplib.SMTP(cf['host'], cf['port']) as server: while True:
if cf['tls']: job_files = os.listdir(cf['job_dir'])
server.starttls() if first or job_files:
log.debug(f'Login sebagai {cf["username"]}') log.debug(f'Connect to {cf["host"]}:{cf["port"]}')
server.login(cf['username'], cf['password']) with smtplib.SMTP(cf['host'], cf['port']) as server:
save_status() if cf['tls']:
while True: server.starttls()
send(server) log.debug(f'Login sebagai {cf["username"]}')
sleep(1) server.login(cf['username'], cf['password'])
first and save_status()
send(server, job_files)
first = False
sleep(1)
except ConnectionRefusedError as err: except ConnectionRefusedError as err:
msg = str(err) msg = str(err)
except OSError as err: except OSError as err:
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!