duangouyan3328 2016-05-31 07:41
浏览 161
已采纳

亚马逊ses邮件附件php

I am trying to send pdf attachments in mail using amazon SES sendmail() function in php . I have written a function which takes MIME type as content and send a mail. But I am not able to send attachment in the mail. the file paths and all the other values are seems perfect.

The functions code is as follows :

/*
* Function sendRawMail() is used to send mails to user with attachments
*/
public function sendRawMail($subject, $body='', $to, $cc = '',$bcc = '', $filetype,$filename,$filepath) 
{

    $domain = explode('@', $to);
    if (count($domain) > 1 && $domain[1] == 'guest.com') {
        $to = 'knowlensguestuser3@gmail.com';
    }

    $destination = array();
    $destination['ToAddresses'] = array($to);
    if($cc != '')
    {
        $cc = explode(',', $cc);
        $destination['CcAddresses'] = $cc;
    }
    if($bcc != '')
    {
        $bcc = explode(',', $bcc);
        $destination['BccAddresses'] = $bcc;
    }


    $replyTo = 'notifications@knowlens.com';

    $client = SesClient::factory(array(
        'key' => Yii::$app->params['aws.id'],
        'secret' => Yii::$app->params['aws.secret'],
        'region' => 'us-east-1',
    ));

    $message= "To: ".$to."
";
    $message.= "From: ".$replyTo."
";
    $message.= "Subject: ".$subject."
";
    $message.= "MIME-Version: 1.0
";
    $message.= 'Content-Type: multipart/mixed; boundary="aRandomString_with_signs_or_9879497q8w7r8number"';
    $message.= "

";
    $message.= "--aRandomString_with_signs_or_9879497q8w7r8number
";
    $message.= 'Content-Type: text/plain; charset="utf-8"';
    $message.= "
";
    $message.= "Content-Transfer-Encoding: 7bit
";
    $message.= "Content-Disposition: inline
";
    $message.= "
";
    $message.= $body;
    $message.= "

";
    $message.= "--aRandomString_with_signs_or_9879497q8w7r8number
";
    $message.= "Content-ID: \<77987_SOME_WEIRD_TOKEN_BUT_UNIQUE_SO_SOMETIMES_A_@domain.com_IS_ADDED\>
";
    $message.= 'Content-Type: application/'.$filetype.'; name="'.$filename.'"';
    $message.= "
";
    $message.= "Content-Transfer-Encoding: base64
";
    $message.= 'Content-Disposition: attachment; filename="'.$filename.'"';
    $message.= "
";
    $message.= base64_encode(file_get_contents($filepath));
    $message.= "
";
    $message.= "--aRandomString_with_signs_or_9879497q8w7r8number--
";

    $result = $client->SendRawEmail(array(
        // Source is required
        'Source' => '​​​​Knowlens Solutions Pvt. Ltd. <notifications@knowlens.com>',
        // Destination is required
        'Destination' => $destination,
        // Message is required
        'RawMessage' => array(
            // Data is required
            'Data' => base64_encode($message),
        ),

    ));

}

Mail is successfully sent to the user, but without attachment. Please help.

  • 写回答

2条回答 默认 最新

  • douyong1908 2017-08-31 08:18
    关注

    The total size of the message cannot exceed 10 MB. This includes any attachments that are part of the message. Have you checked the size of your pdf file?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)