Fix: code revise

This commit is contained in:
2019-04-19 10:32:51 +09:00
parent c9a950f6f6
commit e4f55f5d23
2 changed files with 40 additions and 61 deletions
+33 -54
View File
@@ -37,10 +37,9 @@ class MailSender:
bank_owner_name = "박지상"
def __init__(self):
print("")
post_param = self.make_default_post_param()
@staticmethod
def send_email(post_param, timestamp, signature):
def send_email(self, timestamp, signature):
url = NCloud.host_name_url + NCloud.request_url
# echo url."\n"
@@ -54,7 +53,7 @@ class MailSender:
# print('headers : ' + json.dumps(headers))
# print('data : ' + json.dumps(post_param))
# exit(0)
res = requests.post(url, headers=headers, data=json.dumps(post_param))
res = requests.post(url, headers=headers, data=json.dumps(self.post_param))
print('sending mail result : {0}'.format(res.status_code))
print('result text : \n{0}'.format(res.text))
@@ -78,54 +77,11 @@ class MailSender:
return NCloud.host_name_url + NCloud.request_url + \
"/requests/" + NCloud.request_id + "/status"
@staticmethod
def get_post_param(post_param, key):
if key in post_param:
return post_param[key]
elif key == "parameters" or key == "recipients":
return array_map()
elif key == "individual":
return false
# elif key == "body" or key == "sender_address" \
# or key == "sender_name" or key == "templateSid" \
# or key == "title":
# return ""
def set_post_param(self, key, value):
self.post_param[key] = value
return ''
def make_post_param(self, post_param):
post_param = {
"advertising" : False, # 광고메일여부 default: False
"attachFileIds" : [], # 첨부파일ID
"body" : self.get_post_param(post_param, "body"), # Email 본문
"individual" : self.get_post_param(post_param, "individual"),
# 개인발송여부 (개인발송 시 참조인, 숨은참조 무시됨) default: true
"parameters" : self.get_post_param(post_param, "parameters"),
# 치환 파라미터 (전체 수신자에게 적용), ‘치환 ID’ 를 key로, ‘치환 ID에 맵핑되는 값’ 을 value로 가지는 Map 형태의 Object
"recipients" : self.get_post_param(post_param, "recipients"),
"referencesHeader" : "",
# 특정 메일을 모아서 보기 위해 네이버 메일에서 지원하는 기능, 해당 필드에 동일한 값을 입력한 메일들을 모아서 볼 수 있다. (다음의 형태가 되어야 함 : <unique_id@domain.com> )
"reservationUtc" : "",
# 예약 발송 일시 ( 1970년 1월 1일 00:00:00 협정 세계시(UTC) 부터의 경과 시간을 1/1000초로 환산한 정수 ), reservationDateTime 값보다 이 값이 우선 적용된다.
"reservationDateTime" : "",
# 다음과 같은 형태의 예약 발송 일시 (yyyy-MM-dd HH:mm UTC+09:00), reservationUtc 값이 우선한다.
"sender_address" : self.get_post_param(post_param, "sender_address"), # 발송자 Email 주소
"sender_name" : self.get_post_param(post_param, "sender_name"), # 발송자 이름
"temprequest_id" : "", # 첨부파일 등록 시 사용한 임시 요청 ID
"templateSid" : self.get_post_param(post_param, "templateSid"), # 템플릿 ID
"title" : self.get_post_param(post_param, "title"), # Mail 제목
}
return json.dumps(post_param)
@staticmethod
def make_default_post_param(maestro_name, maestro_email):
post_param = {}
post_param['sender_address'] = MailSender.sender_email
post_param['sender_name'] = MailSender.sender_name
post_param['individual'] = False
post_param['title'] = None
post_param['body'] = None
post_param['recipients'] = [
def set_post_param_recipients(self, maestro_name, maestro_email):
self.post_param['recipients']: [
{
'address': maestro_email,
'name': '',
@@ -137,11 +93,34 @@ class MailSender:
{
'address': MailSender.sender_bcc,
'name': '',
'type': 'R',
'parameters': None
'type': 'B',
'parameters': []
}
]
return post_param
def make_default_post_param(self):
self.post_param = {
'advertising': False, # 광고메일여부 default: False
'attachFileIds': [], # 첨부파일ID
'body': '', # Email 본문
'individual': False, # 개인발송여부 (개인발송 시 참조인, 숨은참조 무시됨) default: true
'parameters': [], # 치환 파라미터 (전체 수신자에게 적용), ‘치환 ID’ 를 key로,
# ‘치환 ID에 맵핑되는 값’ 을 value로 가지는 Map 형태의 Object
'recipients': [],
'referencesHeader': '', # 특정 메일을 모아서 보기 위해 네이버 메일에서 지원하는 기능,
# 해당 필드에 동일한 값을 입력한 메일들을 모아서 볼 수 있다.
# (다음의 형태가 되어야 함 : <unique_id@domain.com> )
'reservationUtc': '', # 예약 발송 일시 ( 1970년 1월 1일 00:00:00 협정 세계시(UTC)
# 부터의 경과 시간을 1/1000초로 환산한 정수 ),
# reservationDateTime 값보다 이 값이 우선 적용된다.
'reservationDateTime': '', # 다음과 같은 형태의 예약 발송 일시 (yyyy-MM-dd HH:mm UTC+09:00),
# reservationUtc 값이 우선한다.
'sender_address': MailSender.sender_email,
'sender_name': MailSender.sender_name,
'temprequest_id': '', # 첨부파일 등록 시 사용한 임시 요청 ID
'templateSid': 0, # 템플릿 ID
'title': ''
}
@staticmethod
def get_timestamp():
+7 -7
View File
@@ -4,17 +4,17 @@ from mail_sender import MailSender
def send_mail_waiting_7days_maestro(name, email, register_date):
post_param = mail_sender.make_default_post_param(name, email)
post_param['templateSid'] = 337
post_param['parameters'] = {
'maestro_name': name,
'maestro_date': register_date
}
mail_sender.make_default_post_param()
mail_sender.set_post_param('templateSid', 337)
mail_sender.set_post_param_recipients(name, email)
mail_sender.set_post_param('parameters',
{'maestro_name': name, 'maestro_date': register_date })
timestamp = MailSender.get_timestamp()
# print('hmac : ' + MailSender.hash_hmac('ripemd160', 'The quick brown fox jumped over the lazy dog.', 'secret'))
signature = MailSender.make_signature(NCloud.request_url, timestamp)
# print('signature : ' + signature.decode('utf-8'))
MailSender.send_email(post_param, timestamp, signature)
mail_sender.send_email(timestamp, signature)
mail_sender = MailSender()