Initial import

This commit is contained in:
sas.fajri
2026-04-27 10:26:26 +07:00
commit bf9b9097ee
2388 changed files with 3002242 additions and 0 deletions

View File

@@ -0,0 +1,133 @@
#!/usr/bin/python
import smtplib
import urllib
import urllib2
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders
from PyPDF2 import PdfFileWriter, PdfFileReader
import StringIO
import json
import pdb
import time
import MySQLdb as mdb
import sys
#hardcoded email type
EMAIL_TYPE = 2
MAX_PER_JOB = 10
def mydb():
try :
server = 'localhost'
user = 'hsgw'
passwd = 'hsgw!102938'
dbname = 'one_preorder_dev'
return mdb.connect(server , user, passwd, dbname)
except mdb.Error, e :
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit()
def sendEmailText(rec,subject,i_msg,cc):
server = g_server
to_addrs = [rec]
xfrom = g_from
msg = MIMEMultipart()
msg['From'] = g_from
msg['To'] = rec
if cc != "" :
msg['Cc'] = cc
to_addrs = [rec,cc]
msg['Subject'] = subject
msg.attach(MIMEHtml(i_msg))
rst = True
try :
s = smtplib.SMTP(server,587)
s.set_debuglevel(7)
s.starttls()
s.login(g_login,g_password)
s.sendmail(xfrom, to_addrs, msg.as_string())
s.close()
except:
rst =False
return rst
def getMailConfig(db) :
try :
cur = db.cursor(mdb.cursors.DictCursor)
sql = '''
select * from m_emailconfig where M_EmailConfigIsActive = 'Y' limit 0,1
'''
cur.execute(sql)
rows = cur.fetchall()
cur.close()
if rows :
return rows[0]
return false
except mdb.Error, e :
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit()
def getHomeService(db,retry) :
try :
cur = db.cursor(mdb.cursors.DictCursor)
sql = '''
select outboxID, outboxRecipient, outboxMessage
from one_gateway.outbox
join preorder_header on outboxRefID = PreOrder_HeaderID
where outboxIsSent = 'N' and outboxTypeID = %s
and outboxIsActive = 'Y' and outboxRetry < retry
order by outboxID desc
limit 0,%s
'''
inp = (EMAIL_TYPE,MAX_PER_JOB)
cur.execute(sql,inp)
rows = cur.fetchall()
cur.close()
return rows
except mdb.Error, e :
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit()
def updateHomeService(db, id, success) :
try :
cur = db.cursor(mdb.cursors.DictCursor)
if success :
sql = '''
update one_gateway.outbox set outboxIsSent = 'Y',
outboxSentDate = now() where outboxID=%s
'''
else :
sql = '''
update one_gateway.outbox set outboxRetry = outboxRetry + 1
where outboxID=%s
'''
inp = ( id )
cur.execute(sql,inp)
cur.close()
except mdb.Error, e :
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit()
# get db
db = mydb()
config = getMailConfig(db)
g_server = config["M_EmailConfigServer"]
g_login = config["M_EmailConfigUsername"]
g_password = config["M_EmailConfigPassword"]
g_from = config["M_EmailConfigSender"]
g_max_retry= config["M_EmailConfigMaxRetry"]
g_cc = config["M_EmailConfigCc"]
rows_hs = getHomeService(db,g_max_retry)
for r in row_hs :
id = r['outboxID']
email = r['outboxRecipient']
subject = r['Home Service Confirmation']
message = r['outboxMessage']
rst = sendEmailText(email,subject,message)
updateHomeService(db,id,rst)