aws PinPoint发附件demo

本文介绍了如何在Laravel8框架中使用AWSSDKforPHPv3.257发送带有多个附件的电子邮件,包括处理中文附件名和设置邮件头信息。
摘要由CSDN通过智能技术生成

php 版aws PinPoint发附件demo

Laravel8框架,安装了"aws/aws-sdk-php": "^3.257" 

主要代码:

public function sendRawMail(Request $request)
{

        $file = $request->file('attachment');
        /*echo count($file);
        dd($file);*/
        $filename = $file[0]->getClientOriginalName();
        $filepath = $file[0]->getPathname();
        $filetype=$file[0]->getMimeType();
        $filename1 = $file[1]->getClientOriginalName();
        $filepath1 = $file[1]->getPathname();
        $filetype1=$file[1]->getMimeType();
        
        $to='recive@xxxxx.com';//收件人1
        $to1='recive2@xxxxx.com';//收件人2
        $fromAddress = 'xxxxx@xxxxx.com';//发件人(必须是在aws认证过身份的)  mb_encode_mimeheader('发件人名称','UTF-8')<xxxxx@xxxxx.com> 这种格式发出去的 会带上发件人名称
        $subject='test subject';//邮件主题
        //邮件内容
        $body='<!DOCTYPE html>
    <html lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="main">
姓名:sssssssssssss
<a href="https://ww.baidu.com">点击跳转</a>
</div>

</body>
</html>';
        
        $client = new PinpointClient([
            'region'  => 'ap-northeast-1',
            'version'  => 'latest',
        ]);

        $message= "Subject: ".$subject."\n";
        $message.= "MIME-Version: 1.0\n";
        $message.= 'Content-Type: multipart/mixed; boundary="aRandomString_with_signs_or_9879497q8w7r8number"';
        $message.= "\n\n";
        $message.= "--aRandomString_with_signs_or_9879497q8w7r8number\n";
        $message.= 'Content-Type: text/html; charset="utf-8"';//发送html类型的body
        //$message.= 'Content-Type: text/plain; charset="utf-8"';//发送text类型的body
        $message.= "\n";
        $message.= "Content-Transfer-Encoding: 7bit\n";
        $message.= "Content-Disposition: inline\n";
        $message.= "\n";
        $message.= $body;
        $message.= "\n\n";
        $message.= "--aRandomString_with_signs_or_9879497q8w7r8number\n"; //分割符
        //解决附件名称汉字乱码
        $filename=mb_encode_mimeheader($filename,'UTF-8');
        $filetype=mb_encode_mimeheader($filetype,'UTF-8');
        $message.= 'Content-Type: '.$filetype.'; charset="utf-8"; name="'.$filename.'"';
        $message.= "\n";
        $message.= "Content-Transfer-Encoding: base64\n";
        $message.= 'Content-Disposition: attachment; filename="'.$filename.'"';
        $message.= "\n\n\n";
        $message.= base64_encode(file_get_contents($filepath));
        $message.= "\n\n\n";
        $message.= "--aRandomString_with_signs_or_9879497q8w7r8number\n";
        //解决附件名称汉字乱码
        $filename1=mb_encode_mimeheader($filename1,'UTF-8');
        $filetype1=mb_encode_mimeheader($filetype1,'UTF-8');
        $message.= 'Content-Type: '.$filetype1.'; charset="utf-8"; name="'.$filename1.'"';
        $message.= "\n";
        $message.= "Content-Transfer-Encoding: base64\n";
        $message.= 'Content-Disposition: attachment; filename="'.$filename1.'"';
        $message.= "\n\n\n";
        $message.= base64_encode(file_get_contents($filepath1));
        $message.= "\n\n\n";
        $message.= "--aRandomString_with_signs_or_9879497q8w7r8number--\n";
        file_put_contents('/data1/client/public/pdf/a.txt',$message);
        $messageRequest = [
            'ApplicationId' => 'aws ApplicationId', //已创建的pinPoint上取
            'MessageRequest' => [
                'Addresses' => [
                    $to => [
                        'ChannelType' => 'EMAIL',
                    ],
                    $to1 => [
                        'ChannelType' => 'EMAIL',
                    ],
                ],
                'MessageConfiguration' => [
                    'EmailMessage' => [
                        'FromAddress' => $fromAddress,
                        'ReplyToAddresses' => ['xxxxxx@xxxxx.com','xxxxx@xxxxx.com'], //用户回复的地址
                        'RawEmail'=>['Data'=>$message],
                    ]
                ],
            ],
        ];
        $result = $client->sendMessages($messageRequest);
        dd($result);

}

postmain测试截图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为天空着色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值