Skip to content

Commit

Permalink
Merge pull request #16 from alphasnow/master
Browse files Browse the repository at this point in the history
feat(transport): Automatically determine the body content type
  • Loading branch information
overtrue authored May 14, 2021
2 parents 45d4157 + e052d05 commit bf8ac0d
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions src/DirectMailTransport.php
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@ protected function payload(Swift_Mime_SimpleMessage $message, array $region)
'ToAddress' => $this->getTo($message),
'FromAlias' => Arr::get($this->options, 'from_alias'),
'Subject' => $message->getSubject(),
'HtmlBody' => $message->getBody(),
'ClickTrace' => Arr::get($this->options, 'click_trace', 0),
'Format' => 'json',
'Action' => 'SingleSendMail',
Expand All @@ -135,6 +134,9 @@ protected function payload(Swift_Mime_SimpleMessage $message, array $region)
'RegionId' => $region['id'],
]);

$bodyName = $this->getBodyName($message);
$parameters[$bodyName] = $message->getBody();

$parameters['Signature'] = $this->makeSignature($parameters);

return $parameters;
Expand All @@ -155,9 +157,9 @@ protected function makeSignature(array $parameters)
$encoded[] = \sprintf('%s=%s', rawurlencode($key), rawurlencode($value));
}

$signString = 'POST&%2F&'.rawurlencode(\join('&', $encoded));
$signString = 'POST&%2F&' . rawurlencode(\join('&', $encoded));

return base64_encode(hash_hmac('sha1', $signString, $this->getSecret().'&', true));
return base64_encode(hash_hmac('sha1', $signString, $this->getSecret() . '&', true));
}

/**
Expand Down Expand Up @@ -236,4 +238,14 @@ public function setSecret(string $secret)
{
return $this->secret = $secret;
}

/**
* @param Swift_Mime_SimpleMessage $message
*
* @return string
*/
protected function getBodyName(Swift_Mime_SimpleMessage $message)
{
return $message->getBodyContentType() == 'text/plain' ? 'TextBody' : 'HtmlBody';
}
}

0 comments on commit bf8ac0d

Please sign in to comment.