Skip to content

Commit bf8ac0d

Browse files
authored
Merge pull request #16 from alphasnow/master
feat(transport): Automatically determine the body content type
2 parents 45d4157 + e052d05 commit bf8ac0d

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/DirectMailTransport.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ protected function payload(Swift_Mime_SimpleMessage $message, array $region)
122122
'ToAddress' => $this->getTo($message),
123123
'FromAlias' => Arr::get($this->options, 'from_alias'),
124124
'Subject' => $message->getSubject(),
125-
'HtmlBody' => $message->getBody(),
126125
'ClickTrace' => Arr::get($this->options, 'click_trace', 0),
127126
'Format' => 'json',
128127
'Action' => 'SingleSendMail',
@@ -135,6 +134,9 @@ protected function payload(Swift_Mime_SimpleMessage $message, array $region)
135134
'RegionId' => $region['id'],
136135
]);
137136

137+
$bodyName = $this->getBodyName($message);
138+
$parameters[$bodyName] = $message->getBody();
139+
138140
$parameters['Signature'] = $this->makeSignature($parameters);
139141

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

158-
$signString = 'POST&%2F&'.rawurlencode(\join('&', $encoded));
160+
$signString = 'POST&%2F&' . rawurlencode(\join('&', $encoded));
159161

160-
return base64_encode(hash_hmac('sha1', $signString, $this->getSecret().'&', true));
162+
return base64_encode(hash_hmac('sha1', $signString, $this->getSecret() . '&', true));
161163
}
162164

163165
/**
@@ -236,4 +238,14 @@ public function setSecret(string $secret)
236238
{
237239
return $this->secret = $secret;
238240
}
241+
242+
/**
243+
* @param Swift_Mime_SimpleMessage $message
244+
*
245+
* @return string
246+
*/
247+
protected function getBodyName(Swift_Mime_SimpleMessage $message)
248+
{
249+
return $message->getBodyContentType() == 'text/plain' ? 'TextBody' : 'HtmlBody';
250+
}
239251
}

0 commit comments

Comments
 (0)