Add: send_mail_to_7days_left_maestro.php

This commit is contained in:
2022-07-20 22:51:20 +09:00
parent 4eca82d924
commit 67399ba1ad
7 changed files with 52 additions and 0 deletions
@@ -0,0 +1,52 @@
<?php
require_once __DIR__ . "/mail/mail_sender.php";
require_once __DIR__ . "/mail/mail_setting.php";
require_once __DIR__ . "/mail/chocomae_info.php";
if($argc != 4) {
echo "check the input arguments\n";
exit(0);
}
// for($i = 0; $i < $argc; $i++) {
// echo "[".$i."] : ".$argv[$i]."\n";
// }
// exit(0);
$maestroEmail = $argv[1];
$maestroName = $argv[2];
$date = $argv[3];
$year = substr($date, 0, 4);
$month = substr($date, 4, 2);
$day = substr($date, 6, 2);
$registerDate = $year."".$month."".$day."";
$parameters = array(
"maestro_name" => $maestroName,
"available_date" => $registerDate
);
$recipientParam = array(
"maestro_name" => $maestroName
);
$nCloudSetting = new MailSetting();
$chocomae = new ChocomaeInfo();
$mailSender = new MailSender();
$mailSender->setMailSetting($nCloudSetting);
$mailSender->setSenderInfo($chocomae->sender_name, $chocomae->sender_email);
$mailSender->makePostParam(333);
$mailSender->setParameters($parameters);
$mailSender->addRecipient($maestroEmail, $maestroName, "R", $recipientParam);
$mailSender->addRecipient($chocomae->sender_bcc, $chocomae->sender_name, "B", $recipientParam);
// $mailSender->showSettings();
$mailSender->send();
?>
@@ -0,0 +1,52 @@
<?php
require_once __DIR__ . "/mail/mail_sender.php";
require_once __DIR__ . "/mail/mail_setting.php";
require_once __DIR__ . "/mail/chocomae_info.php";
if($argc != 4) {
echo "check the input arguments\n";
exit(0);
}
// for($i = 0; $i < $argc; $i++) {
// echo "[".$i."] : ".$argv[$i]."\n";
// }
// exit(0);
$maestroEmail = $argv[1];
$maestroName = $argv[2];
$date = $argv[3];
$year = substr($date, 0, 4);
$month = substr($date, 4, 2);
$day = substr($date, 6, 2);
$registerDate = $year."".$month."".$day."";
$parameters = array(
"maestro_name" => $maestroName,
"available_date" => $registerDate
);
$recipientParam = array(
"maestro_name" => $maestroName
);
$nCloudSetting = new MailSetting();
$chocomae = new ChocomaeInfo();
$mailSender = new MailSender();
$mailSender->setMailSetting($nCloudSetting);
$mailSender->setSenderInfo($chocomae->sender_name, $chocomae->sender_email);
$mailSender->makePostParam(691);
$mailSender->setParameters($parameters);
$mailSender->addRecipient($maestroEmail, $maestroName, "R", $recipientParam);
$mailSender->addRecipient($chocomae->sender_bcc, $chocomae->sender_name, "B", $recipientParam);
// $mailSender->showSettings();
$mailSender->send();
?>
@@ -0,0 +1,52 @@
<?php
require_once __DIR__ . "/mail/mail_sender.php";
require_once __DIR__ . "/mail/mail_setting.php";
require_once __DIR__ . "/mail/chocomae_info.php";
if($argc != 4) {
echo "check the input arguments\n";
exit(0);
}
// for($i = 0; $i < $argc; $i++) {
// echo "[".$i."] : ".$argv[$i]."\n";
// }
// exit(0);
$maestroEmail = $argv[1];
$maestroName = $argv[2];
$date = $argv[3];
$year = substr($date, 0, 4);
$month = substr($date, 4, 2);
$day = substr($date, 6, 2);
$registerDate = $year."".$month."".$day."";
$parameters = array(
"maestro_name" => $maestroName,
"register_date" => $registerDate,
);
$recipientParam = array(
"maestro_name" => $maestroName
);
$nCloudSetting = new MailSetting();
$chocomae = new ChocomaeInfo();
$mailSender = new MailSender();
$mailSender->setMailSetting($nCloudSetting);
$mailSender->setSenderInfo($chocomae->sender_name, $chocomae->sender_email);
$mailSender->makePostParam(337);
$mailSender->setParameters($parameters);
$mailSender->addRecipient($maestroEmail, $maestroName, "R", $recipientParam);
$mailSender->addRecipient($chocomae->sender_bcc, $chocomae->sender_name, "B", $recipientParam);
// $mailSender->showSettings();
$mailSender->send();
?>
+124
View File
@@ -0,0 +1,124 @@
<?php
# Usage :
# php test_ncloud.php name email date
# php test_ncloud.php 삼화초 jisangs@daum.net "2019년 4월 25일"
if($argc == 1) {
echo "no maestro name";
exit(0);
} else if($argc == 2) {
echo "no maestro email";
exit(0);
} else if($argc == 3) {
echo "no register date";
exit(0);
}
$maestro_name = $argv[1];
$maestro_email = $argv[2];
$register_date = $argv[3];
$hostNameUrl = "https://mail.apigw.ntruss.com"; // 호스트 URL
$requestUrl= "/api/v1/mails"; // 요청 URI
$accessKey = "qNXWk443wdnDXrkPvoqr"; // 네이버 클라우드 플랫폼 회원에게 발급되는 개인 인증키
$secretKey = "umWxQXulhNSya2CkMNqqVJnSRfwRaN8BjMUX0skV"; // 2차 인증을 위해 서비스마다 할당되는 service secret
$apiKey = "eWfapJfbR5W9NXPEsdXGzlJsShEV30DfxIV0d51J"; // API Gateway에서 발급받은 키 (primary key 또는 secondary key)
$method = "POST"; // 요청 method mail 발송 : POST, 발송 확인 GET
$requestId = ""; // 요청 ID
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" => "support+chocomae@jinaju.com", // 발송자 Email 주소
"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";
}
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;
}
?>
+38
View File
@@ -0,0 +1,38 @@
<?php
require "./mail/mail_sender.php";
require "./mail/mail_setting.php";
require "./mail/chocomae_info.php";
$maestroEmail = "jisangs@daum.net";
$maestroName = "삼화초";
$registerDate = "2019-04-30";
$parameters = array(
"maestro_name" => $maestroName,
"register_date" => $registerDate,
);
$recipientParam = array(
"maestro_name" => $maestroName
);
$nCloudSetting = new MailSetting();
$chocomae = new ChocomaeInfo();
$mailSender = new MailSender();
$mailSender->setMailSetting($nCloudSetting);
$mailSender->setSenderInfo($chocomae->sender_name, $chocomae->sender_email);
$mailSender->makePostParam(337);
$mailSender->setParameters($parameters);
$mailSender->addRecipient($maestroEmail, $maestroName, "R", $recipientParam);
$mailSender->addRecipient($chocomae->sender_bcc, $chocomae->sender_name, "B", $recipientParam);
// $mailSender->showSettings();
$mailSender->send();
?>
@@ -0,0 +1,52 @@
<?php
# /Applications/MAMP/bin/php/php7.3.1/bin/php send_mail_to_7days_left_maestro.php
include "./../../web/server/setup/connect_db.php";
include "./../../web/php/mail/mail_sender.php";
include "./../../web/php/mail/mail_setting.php";
include "./../../web/php/mail/chocomae_info.php";
$maestroList = null;
$maestroList = get_maestro_list();
print_r($maestroList);
exit;
function get_maestro_list(): array
{
global $db_conn;
/*
$query = "
select MaestroID, Name, AccountType, ActivateStatus, AvailableActivateDateTime, AcceptClausesDateTime, PlayerCount
from maestro
where DATE(AvailableActivateDateTime) - INTERVAL 7 DAY = DATE(NOW()) AND ActivateStatus = 1
";
*/
$query = "
select MaestroID, Name, AccountType, ActivateStatus, AvailableActivateDateTime, AcceptClausesDateTime, PlayerCount
from maestro
where DATE(AvailableActivateDateTime) - INTERVAL 70 DAY < DATE(NOW()) AND ActivateStatus = 1
";
$stmt = $db_conn->prepare($query);
$stmt->execute();
$stmt->bind_result($maestroID, $name, $accountType, $activateStatus, $availableActivateDateTime , $acceptClausesDateTime, $playerCount);
$maestroList = array();
while($stmt->fetch()) {
$maestro["maestroID"] = $maestroID;
$maestro["maestroName"] = $name;
$maestro["accountType"] = $accountType;
$maestro["activateStatus"] = $activateStatus;
$maestro["availableActivateDateTime"] = $availableActivateDateTime;
$maestro["acceptClausesDateTime"] = $acceptClausesDateTime;
$maestro["playerCount"] = $playerCount;
array_push($maestroList, $maestro);
}
return $maestroList;
}
?>
+10
View File
@@ -0,0 +1,10 @@
<?php
for ($i = 0; $i < $argc; $i++) {
echo "[".$i."] : ".$argv[$i]."\n";
}
# include("test_ncloud.php");
# php test_ncloud.php 삼화초 jisangs@daum.net 2019-04-22
# php test_ncloud.php name email date
?>