Implement Navercloudmail error handling

This commit is contained in:
Lastorder 2024-07-15 09:29:57 +00:00
parent 0d6cc06cee
commit a8ddaee191

View file

@ -66,13 +66,13 @@ class Navercloudmail extends Base implements \Rhymix\Framework\Drivers\MailInter
* @return string * @return string
*/ */
private static function _makeSignature($timestamp, $accessKey, $secretKey) { private static function _makeSignature($timestamp, $accessKey, $secretKey) {
$space = " "; // 공백 $space = " ";
$newLine = "\n"; // 줄바꿈 $newLine = "\n";
$method = "POST"; // HTTP 메소드 $method = "POST";
$uri= "/api/v1/mails"; // 도메인을 제외한 "/" 아래 전체 url (쿼리스트링 포함) $uri= "/api/v1/mails";
$timestamp = $timestamp; // 현재 타임스탬프 (epoch, millisecond) $timestamp = $timestamp;
$accessKey = $accessKey; // access key id (from portal or sub account) $accessKey = $accessKey;
$secretKey = $secretKey; // secret key (from portal or sub account) $secretKey = $secretKey;
$hmac = $method.$space.$uri.$newLine.$timestamp.$newLine.$accessKey; $hmac = $method.$space.$uri.$newLine.$timestamp.$newLine.$accessKey;
$signautue = base64_encode(hash_hmac('sha256', $hmac, $secretKey,true)); $signautue = base64_encode(hash_hmac('sha256', $hmac, $secretKey,true));
@ -160,43 +160,22 @@ class Navercloudmail extends Base implements \Rhymix\Framework\Drivers\MailInter
try try
{ {
$request = \Rhymix\Framework\HTTP::post(self::$_url . "/mails", $data, $headers, [], ['timeout' => self::$_timeout]); $request = \Rhymix\Framework\HTTP::post(self::$_url . "/mails", $data, $headers, [], ['timeout' => self::$_timeout]);
$result = $request->getBody()->getContents(); $result = @json_decode($request->getBody()->getContents());
} }
catch (\Requests_Exception $e) catch (\Requests_Exception $e)
{ {
$message->errors[] = 'Navercloudmail: ' . $e->getMessage(); $message->errors[] = 'Navercloudmail: Request error: ' . $e->getMessage();
return false; return false;
} }
// TODO: proper parsing of body if (isset($result->error))
debugPrint($result);
return true;
/*
if (!$result)
{ {
$message->errors[] = 'Navercloudmail: Server error: ' . $request->body; $message->errors[] = 'Navercloudmail: ' . $result->error . PHP_EOL . $result->details;
return false; return false;
} }
elseif($result->result === 'OK')
{
return true;
}
else else
{ {
if(isset($result->error_msg)) return true;
{ }
if(isset(self::$_error_codes[$result->error_msg]))
{
$result->error_msg .= ' ' . self::$_error_codes[$result->error_msg];
}
$message->errors[] = 'Woorimail: ' . $result->error_msg;
}
else
{
$message->errors[] = 'Woorimail: Connection error';
}
return false;
}
*/
} }
} }