Fix: code revise
This commit is contained in:
@@ -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():
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user