Mailgun\Connection\RestClient::post PHP Method

post() public method

public post ( string $endpointUrl, array $postData = [], array $files = [] ) : stdClass
$endpointUrl string
$postData array
$files array
return stdClass
    public function post($endpointUrl, array $postData = [], $files = [])
    {
        $postFiles = [];
        $fields = ['message', 'attachment', 'inline'];
        foreach ($fields as $fieldName) {
            if (isset($files[$fieldName])) {
                if (is_array($files[$fieldName])) {
                    $fileIndex = 0;
                    foreach ($files[$fieldName] as $file) {
                        $postFiles[] = $this->prepareFile($fieldName, $file, $fileIndex);
                        ++$fileIndex;
                    }
                } else {
                    $postFiles[] = $this->prepareFile($fieldName, $files[$fieldName]);
                }
            }
        }
        $postDataMultipart = [];
        foreach ($postData as $key => $value) {
            if (is_array($value)) {
                $index = 0;
                foreach ($value as $subValue) {
                    $postDataMultipart[] = ['name' => sprintf('%s[%d]', $key, $index++), 'contents' => $subValue];
                }
            } else {
                $postDataMultipart[] = ['name' => $key, 'contents' => $value];
            }
        }
        return $this->send('POST', $endpointUrl, [], array_merge($postDataMultipart, $postFiles));
    }

Usage Example

示例#1
0
 /**
  * @param array $message
  * @param array $files
  * @throws MissingRequiredMIMEParameters
  */
 public function sendMessage($message = array(), $files = array())
 {
     if (count($message) < 1) {
         $message = $this->message;
         $files = $this->files;
     }
     if (!array_key_exists("from", $message)) {
         throw new MissingRequiredMIMEParameters(ExceptionMessages::EXCEPTION_MISSING_REQUIRED_MIME_PARAMETERS);
     } elseif (!array_key_exists("to", $message)) {
         throw new MissingRequiredMIMEParameters(ExceptionMessages::EXCEPTION_MISSING_REQUIRED_MIME_PARAMETERS);
     } elseif (!array_key_exists("subject", $message)) {
         throw new MissingRequiredMIMEParameters(ExceptionMessages::EXCEPTION_MISSING_REQUIRED_MIME_PARAMETERS);
     } elseif (!array_key_exists("text", $message) && !array_key_exists("html", $message)) {
         throw new MissingRequiredMIMEParameters(ExceptionMessages::EXCEPTION_MISSING_REQUIRED_MIME_PARAMETERS);
     } else {
         $message["recipient-variables"] = json_encode($this->batchRecipientAttributes);
         $response = $this->restClient->post($this->endpointUrl, $message, $files);
         $this->batchRecipientAttributes = array();
         $this->counters['recipients']['to'] = 0;
         $this->counters['recipients']['cc'] = 0;
         $this->counters['recipients']['bcc'] = 0;
         unset($this->message["to"]);
         array_push($this->messageIds, $response->http_response_body->id);
     }
 }
All Usage Examples Of Mailgun\Connection\RestClient::post