Commit b55db6bc by Owo Sugiana

Bug fixed need reconnect

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