【发布时间】:2021-07-29 05:59:14
【问题描述】:
使用 PHP 发送 SES 电子邮件时,无论我使用 SMTP 终端节点还是 AWS 开发工具包,在发送带有附件的原始电子邮件时都会收到类似的错误。在AWS forums 和Wordpress plugin 中报告了类似的错误。当我省略附件时,电子邮件每次发送都没有问题。
通过 SMTP 我收到以下错误:
554 Transaction failed: Expected '/', got null
使用 SDK ("aws/aws-sdk-php": "^3.178") 时,我收到以下信息:
exception 'Aws\Ses\Exception\SesException' with message 'Error executing "SendRawEmail" on "https://email.eu-west-2.amazonaws.com"; AWS HTTP error: Client error: `POST https://email.eu-west-2.amazonaws.com` resulted in a `400 Bad Request` response:
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>InvalidPara (truncated...)
InvalidParameterValue (client): Expected '/', got ; - <ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>InvalidParameterValue</Code>
<Message>Expected '/', got ;</Message>
</Error>
<RequestId>abc123-abc1-abc1-abc1-abc123acb123</RequestId>
</ErrorResponse>
我正在使用 PHPMailer 发送消息:
// Prepare mime message
$mail = new PHPMailer();
$mail->setFrom($user['email'], $user['full_name']);
$mail->addAddress($recipient);
$mail->Subject = $entity['title'];
$mail->isHTML(true);
$mail->Body = $entity['body'];
$mail->addStringAttachment(
'My DOMPDF content',
'attachment.pdf',
PHPMailer::ENCODING_BASE64,
'pdf'
);
$mail->preSend();
$raw = $mail->getSentMIMEMessage();
// Prepare SES client
$ses = new SesClient([
'version' => '',
'region' => 'eu-west-2'
]);
// Send email
$ses->sendRawEmail([
'RawMessage' => [
'Data' => $raw,
],
]);
【问题讨论】:
标签: phpmailer amazon-ses aws-php-sdk