설치
Composer 패키지 하나, PHP 8.2 이상, curl과 json 확장.
설치
현재 릴리스는 0.0.1입니다. TypeScript SDK의 모든 메서드에 대응하는 메서드가 같은 이름으로 있으며, 하나라도 빠지거나 다른 요청을 보내면 패키지의 패리티 검사가 빌드를 실패시킵니다.
composer require openemail/sdk<?php use OpenEmail\OpenEmail; require __DIR__ . '/vendor/autoload.php'; $client = new OpenEmail(); $email = $client->emails->send([ 'from' => 'Acme Billing <[email protected]>', 'to' => '[email protected]', 'subject' => 'Your September invoice', 'html' => '<p>Invoice attached.</p>',]); echo $email['id'], ' ', $email['status'], PHP_EOL;new OpenEmail()은 OPENEMAIL_API_KEY에서 키를 읽으므로 코드에는 자격 증명이 들어가지 않습니다. 구성이 다른 곳에 있다면 apiKey:를 전달하세요. 어디서든 같은 클라이언트를 쓰려면 OpenEmail::init()으로 한 번 구성하고 OpenEmail::getClient()로 가져오세요.
응답은 디코딩된 JSON을 연관 배열로 만든 것이므로 $email['id']로 id를 읽습니다. 키는 API의 이름을 그대로 유지하며, 메서드와 그 명명된 인자도 마찬가지입니다. 그래서 scheduledAt과 idempotencyKey:를 API 레퍼런스에서와 똑같이 여기서도 씁니다.
send가 반환되었다고 해서 메시지가 나간 것은 아닙니다. 예약 발송이나 취소 가능한 발송은 queued 또는 scheduled로 돌아온 뒤 나중에 확정됩니다. 호출이 반환되었다는 사실이 아니라 status를 읽으세요.
실행 환경
PHP 8.2 이상이 필요하며, 거의 모든 빌드에 포함된 curl과 json 확장 외에는 다른 의존성이 없습니다. 요청은 클라이언트마다 하나의 cURL 핸들을 거치므로 API에 대한 두 번째 요청은 첫 번째 요청이 연 연결을 재사용하고, 압축된 응답은 cURL이 알아서 풀어 줍니다.
PHP-FPM, Apache, 명령줄, 그리고 큐 워커, RoadRunner, FrankenPHP 같은 장기 실행 워커에서 동작합니다. PHP-FPM에서는 요청마다 새로 시작하므로 요청당 한 번 클라이언트를 만드세요. 장기 실행 프로세스에서는 프로세스가 살아 있는 동안 하나를 유지하세요. pcntl_fork 후에는 자식 프로세스가 부모의 연결을 재사용하지 않고 자신의 연결을 엽니다.
클라이언트는 메일을 보내고 메일함을 읽을 수 있는 워크스페이스 API 키를 들고 있으므로, 서버나 작업, 또는 자신의 컴퓨터에서 실행되는 도구에 두어야 합니다. 키는 환경 변수나 프레임워크의 시크릿에 보관하고, 절대 코드에 넣지 마세요.