Add: php MailSender class
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
class ChocomaeInfo {
|
||||
// mail sender info
|
||||
public $sender_name = "초코마에";
|
||||
public $sender_email = "support+chocomae@jinaju.com";
|
||||
public $sender_bcc = "support+chocomae.automail@jinaju.com";
|
||||
|
||||
// bank account info
|
||||
public $bank_account_no = "3333-07-4977969";
|
||||
public $bank_name = "카카오뱅크";
|
||||
public $bank_owner_name = "박지상";
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
# Usage :
|
||||
# php test_ncloud.php name email date
|
||||
# php test_ncloud.php 삼화초 jisangs@daum.net "2019년 4월 25일"
|
||||
|
||||
class MailSender {
|
||||
|
||||
private $mailSetting = null;
|
||||
|
||||
private $senderName = "";
|
||||
private $senderEmail = "";
|
||||
|
||||
|
||||
public function showSettings() {
|
||||
echo "mailSetting : ".$this->mailSetting->hostNameUrl."\n\r";
|
||||
echo "senderName : ".$this->senderName."\n\r";
|
||||
echo "senderEmail : ".$this->senderEmail."\n\r";
|
||||
}
|
||||
public function setMailSetting($setting) {
|
||||
$this->mailSetting = $setting;
|
||||
}
|
||||
|
||||
public function setSenderInfo($name, $email) {
|
||||
$this->senderName = $name;
|
||||
$this->senderEmail = $email;
|
||||
}
|
||||
|
||||
function makeSignature($secretKey, $method, $uri, $timestamp, $accessKey) {
|
||||
$space = " ";
|
||||
$newLine = "\n";
|
||||
$hmac = $method.$space.$uri.$newLine.$timestamp.$newLine.$accessKey;
|
||||
$signautue = base64_encode(hash_hmac('sha256', $hmac, $secretKey,true));
|
||||
echo "this is signiture : ".$signautue."\n";
|
||||
return $signautue;
|
||||
}
|
||||
|
||||
public function send() {
|
||||
try {
|
||||
$timestamp = "";
|
||||
$microtime = "";
|
||||
list($microtime,$timestamp) = explode(' ',microtime());
|
||||
$timestamp = $timestamp.substr($microtime, 2, 3);
|
||||
|
||||
$is_post = false;
|
||||
if($method == "POST") {
|
||||
$postParam = array(
|
||||
"advertising" => false, // 광고메일여부 default: false
|
||||
"attachFileIds" => array(), // 첨부파일ID
|
||||
"body" => "", // Email 본문
|
||||
"individual" => false, // 개인발송여부 (개인발송 시 참조인, 숨은참조 무시됨) default: true
|
||||
"parameters" => array(
|
||||
"maestro_name" => $maestro_name,
|
||||
"register_date" => $register_date,
|
||||
), // 치환 파라미터 (수신자별로 적용), ‘치환 ID’ 를 key로, ‘치환 ID에 맵핑되는 값’ 을 value로 가지는 Map 형태의 Object
|
||||
"recipients" => array(
|
||||
array(
|
||||
"address" => $maestro_email, // 수신자 Email 주소
|
||||
"name" => "", // 수신자 명
|
||||
"type" => "R", // 수신자 유형 (R: 수신자, C: 참조인, B: 숨은참조) default: R
|
||||
// "parameters" => array_map(),
|
||||
// 치환 파라미터 (수신자별로 적용), ‘치환 ID’ 를 key로, ‘치환 ID에 맵핑되는 값’ 을 value로 가지는 Map 형태의 Object
|
||||
"parameters" => array(
|
||||
"maestro_name" => $maestro_name,
|
||||
), // 치환 파라미터 (수신자별로 적용), ‘치환 ID’ 를 key로, ‘치환 ID에 맵핑되는 값’ 을 value로 가지는 Map 형태의 Object
|
||||
),
|
||||
),
|
||||
"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 값이 우선한다.
|
||||
"senderAddress" => $senderEmail, // 발송자 Email 주소
|
||||
"senderName" => $senderName, // 발송자 이름
|
||||
"tempRequestId" => "", // 첨부파일 등록 시 사용한 임시 요청 ID
|
||||
"templateSid" => "337", // 템플릿 ID
|
||||
"title" => "", // Mail 제목
|
||||
);
|
||||
|
||||
$postParam = json_encode($postParam);
|
||||
echo "json:\n";
|
||||
echo $postParam;
|
||||
echo "\n";
|
||||
|
||||
$is_post = true;
|
||||
|
||||
$success_code = 201;
|
||||
} else {
|
||||
$success_code = 200;
|
||||
$requestUrl = $requestUrl."/requests/".$requestId."/status";
|
||||
}
|
||||
|
||||
$signautue = makeSignature($secretKey, $method, $requestUrl, $timestamp, $accessKey);
|
||||
|
||||
$url = $hostNameUrl.$requestUrl;
|
||||
echo $url."\n";
|
||||
$ch = curl_init();
|
||||
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_POST, $is_post);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||
if($method == "POST") {
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $postParam);
|
||||
}
|
||||
$headers = array();
|
||||
$headers[] = "X-NCP-APIGW-TIMESTAMP: " .$timestamp;
|
||||
$headers[] = "X-NCP-IAM-ACCESS-KEY: " .$accessKey;
|
||||
$headers[] = "X-NCP-APIGW-SIGNATURE-V2: " .$signautue;
|
||||
$headers[] = "content-type: application/json";
|
||||
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
$response = curl_exec ($ch);
|
||||
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
echo "status_code:".$status_code."\n";
|
||||
curl_close ($ch);
|
||||
if($status_code == 200) {
|
||||
echo $response."\n";
|
||||
} else {
|
||||
echo "Error 내용:".$response."\n";
|
||||
}
|
||||
|
||||
} catch(Exception $E) {
|
||||
echo "Response: ". $E->lastResponse . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
class MailSetting {
|
||||
|
||||
// 호스트 URL
|
||||
public $hostNameUrl = "https://mail.apigw.ntruss.com";
|
||||
|
||||
// 요청 URI
|
||||
public $requestUrl= "/api/v1/mails";
|
||||
|
||||
// 네이버 클라우드 플랫폼 회원에게 발급되는 개인 인증키
|
||||
public $accessKey = "qNXWk443wdnDXrkPvoqr";
|
||||
|
||||
// 2차 인증을 위해 서비스마다 할당되는 service secret
|
||||
public $secretKey = "umWxQXulhNSya2CkMNqqVJnSRfwRaN8BjMUX0skV";
|
||||
|
||||
// API Gateway에서 발급받은 키 (primary key 또는 secondary key)
|
||||
public $apiKey = "eWfapJfbR5W9NXPEsdXGzlJsShEV30DfxIV0d51J";
|
||||
|
||||
// 요청 method mail 발송 : POST, 발송 확인 GET
|
||||
public $method = "POST";
|
||||
|
||||
// 요청 ID
|
||||
public $requestId = "";
|
||||
|
||||
|
||||
public $space = " ";
|
||||
public $newLine = "\n";
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
require "./mail/mail_sender.php";
|
||||
require "./mail/mail_setting.php";
|
||||
require "./mail/chocomae_info.php";
|
||||
|
||||
$mailSender = new MailSender();
|
||||
|
||||
$nCloudSetting = new MailSetting();
|
||||
$mailSender->setMailSetting($nCloudSetting);
|
||||
|
||||
$chocomae = new ChocomaeInfo();
|
||||
$mailSender->setSenderInfo($chocomae->sender_name, $chocomae->sender_email);
|
||||
|
||||
$mailSender->showSettings();
|
||||
|
||||
?>
|
||||
@@ -4,8 +4,8 @@ import subprocess
|
||||
from batch.unpaid_maestro_manager import UnpaidMaestroManager
|
||||
|
||||
|
||||
print('# args : {}'.format(len(sys.argv)))
|
||||
print('args : {}'.format(str(sys.argv)))
|
||||
# print('# args : {}'.format(len(sys.argv)))
|
||||
# print('args : {}'.format(str(sys.argv)))
|
||||
mode = 'mac'
|
||||
arg_count = len(sys.argv)
|
||||
if arg_count > 1:
|
||||
@@ -35,19 +35,18 @@ def backup_unregister_maestro_table_file():
|
||||
command_db_backup = command + user + password + transaction + db + table + where_clause + output_filename
|
||||
# 'mysqldump -u "${DBUSER}" -p"${DBPASS}" --single-transaction "${DBNAME}" "${filename}" --where="DATE(${record_date})=CURDATE()" > "${filename}.dump.bydate.sql"'
|
||||
print(command_db_backup)
|
||||
# subprocess.call(command_db_backup)
|
||||
subprocess.call(command_db_backup)
|
||||
|
||||
|
||||
unpaidMaestroMan = UnpaidMaestroManager(mode)
|
||||
maestro_list = unpaidMaestroMan.get_unpaid_7days_maestro_list()
|
||||
print_items(maestro_list)
|
||||
# print_items(maestro_list)
|
||||
|
||||
backup_unregister_maestro_table_file()
|
||||
|
||||
# print(mode)
|
||||
'''
|
||||
for maestro in maestro_list:
|
||||
remark = maestro['Name'] + ' / unpaid 7 days'
|
||||
unpaidMaestroMan.insert_maestro_log(maestro['MaestroID'], remark)
|
||||
unpaidMaestroMan.delete_maestro_list(maestro['MaestroID'])
|
||||
'''
|
||||
print(maestro['Name'])
|
||||
# remark = maestro['Name'] + ' / unpaid 7 days'
|
||||
# unpaidMaestroMan.insert_maestro_log(maestro['MaestroID'], remark)
|
||||
# unpaidMaestroMan.delete_maestro_list(maestro['MaestroID'])
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
import subprocess
|
||||
|
||||
php
|
||||
command_db_backup = command + user + password + transaction + db + table + where_clause + output_filename
|
||||
# 'mysqldump -u "${DBUSER}" -p"${DBPASS}" --single-transaction "${DBNAME}" "${filename}" --where="DATE(${record_date})=CURDATE()" > "${filename}.dump.bydate.sql"'
|
||||
print(command_db_backup)
|
||||
subprocess.call(command_db_backup)
|
||||
Reference in New Issue
Block a user