aws PinPoint发附件demo
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测试截图:

相关文章:
aws PinPoint发附件demo
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);*/$filenam…...
边写代码边学习之Bidirectional LSTM
1. 什么是Bidirectional LSTM 双向 LSTM (BiLSTM) 是一种主要用于自然语言处理的循环神经网络。 与标准 LSTM 不同,输入是双向流动的,并且它能够利用双方的信息。 它也是一个强大的工具,可以在序列的两个方向上对单词和短语之间的顺序依赖…...
Django学习笔记-实现联机对战
笔记内容转载自 AcWing 的 Django 框架课讲义,课程链接:AcWing Django 框架课。 CONTENTS 1. 统一长度单位2. 增加联机对战模式3. 配置Django Channels 1. 统一长度单位 多人模式中每个玩家所看到的地图相对来说应该是一样的,因此需要固定地…...
nacos总结1
5.Nacos注册中心 国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。 5.1.认识和安装Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,…...
Web安全测试(三):SQL注入漏洞
一、前言 结合内部资料,与安全渗透部门同事合力整理的安全测试相关资料教程,全方位涵盖电商、支付、金融、网络、数据库等领域的安全测试,覆盖Web、APP、中间件、内外网、Linux、Windows多个平台。学完后一定能成为安全大佬! 全部…...
Webstorm 入门级玩转uni-app 项目-微信小程序+移动端项目方案
1. Webstorm uni-app语法插件 : Uniapp Support Uniapp Support - IntelliJ IDEs Plugin | Marketplace 第一个是不收费,第二个收费 我选择了第二个Uniapp Support ,有试用30天,安装重启webstorm之后,可以提高生产率…...
从零开始的Hadoop学习(三)| 集群分发脚本xsync
1. Hadoop目录结构 bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件lib目录:存放Hadoop的本地库(对…...
golang http transport源码分析
golang http transport源码分析 前言 Golang http库在日常开发中使用会很多。这里通过一个demo例子出发,从源码角度梳理golang http库底层的数据结构以及大致的调用流程 例子 package mainimport ("fmt""net/http""net/url""…...
spring boot 项目整合 websocket
1.业务背景 负责的项目有一个搜索功能,搜索的范围几乎是全表扫,且数据源类型贼多。目前对搜索的数据量量级未知,但肯定不会太少,不仅需要搜索还得点击下载文件。 关于搜索这块类型 众多,未了避免有个别极大数据源影响整…...
统计学补充概念-17-线性决策边界
概念 线性决策边界是一个用于分类问题的线性超平面,可以将不同类别的样本分开。在二维空间中,线性决策边界是一条直线,将两个不同类别的样本分隔开来。对于更高维的数据,决策边界可能是一个超平面。 线性决策边界的一般形式可以表…...
指针变量、指针常量与常量指针的区别
指针变量、指针常量与常量指针 一、指针变量 定义:指针变量是指存放地址的变量,其值是地址。 一般格式:基类型 指针变量名;(int p) 关键点: 1、int * 表示一种指针类型(此处指int 类型),p(变量…...
mq与mqtt的关系
文章目录 mqtt 与 mq的区别mqtt 与 mq的详细区别传统消息队列RocketMQ和微消息队列MQTT对比:MQ与RPC的区别 mqtt 与 mq的区别 mqtt:一种通信协议,规范 MQ:一种通信通道(方式),也叫消息队列 MQ…...
代码大全阅读随笔 (二)
软件设计 设计就是把需求分析和编码调试连在一起的活动。 设计不是在谁的头脑中直接跳出来了,他是不断的设计评估,非正式讨论,写实验代码以及修改实验代码中演化和完善。 作为软件开发人员,我们不应该试着在同一时间把整个程序都塞…...
vue 项目的屏幕自适应方案
方案一:使用 scale-box 组件 属性: width 宽度 默认 1920height 高度 默认 1080bgc 背景颜色 默认 "transparent"delay自适应缩放防抖延迟时间(ms) 默认 100 vue2版本:vue2大屏适配缩放组件(vu…...
23软件测试高频率面试题汇总
一、 你们的测试流程是怎么样的? 答:1.项目开始阶段,BA(需求分析师)从用户方收集需求并将需求转化为规格说明书,接 下来在项目组领导会组织需求评审。 2.需求评审通过后,BA 会组织项目经理…...
PHP8的匿名函数-PHP8知识详解
php 8引入了匿名函数(Anonymous Functions),它是一种创建短生命周期的函数,不需要命名,并且可以在其作用域内直接使用。以下是在PHP 8中使用匿名函数的知识要点: 1、创建匿名函数,语法格式如下&…...
Redis—Redis介绍(是什么/为什么快/为什么做MySQL缓存等)
一、Redis是什么 Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、…...
C语言链表梳理-2
链表头使用结构体:struct Class 链表中的每一项使用结构体:struct Student#include <stdio.h>struct Student {char * StudentName;int StudentAge;int StudentSex;struct Student * NextStudent; };struct Class {char *ClassName;struct Stude…...
【深度学习】实验03 特征处理
文章目录 特征处理标准化归一化正则化 特征处理 标准化 # 导入标准化库 from sklearn.preprocessing import StandardScalerfrom matplotlib import gridspec import numpy as np import matplotlib.pyplot as plt import warnings warnings.filterwarnings("ignore&quo…...
基于Dpabi的功能连接
1.预处理 这里预处理用Gretna软件进行,共分为以下几步: (1)DICOM转NIfTI格式 (2)去除前10个时间点(Remove first 10 times points):由于机器刚启动、被试刚躺进去也还需适应环境,导致刚开始扫描的数据很…...
爱普生SG-8201CJ石英可编程振荡器:精准频率控制专家首选
在电子设计中,晶振的选择往往是决定系统性能的关键因素之一。特别是在需要高精度和稳定性的应用中,选择一款合适的晶振尤为重要。今天,我们就来聊聊爱普生(Epson)的SG-8201CJ石英可编程振荡器,看看它如何成…...
SteamAutoCrack:3步自动化破解Steam游戏的终极指南
SteamAutoCrack:3步自动化破解Steam游戏的终极指南 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack 你是否厌倦了每次想玩Steam游戏都要联网验证?是否希望合法购…...
AI视频翻译,正在改变视频出海
过去一年,“短剧/漫剧出海”几乎成为内容行业最热的方向之一。越来越多的团队开始把中文短剧搬到海外市场,包括:TikTokYouTubeReelShortDramaBoxLokShort海外短视频平台而在这个过程中,一个问题开始越来越明显:内容可以…...
从LightDM到DWM:打造轻量级Linux桌面启动链
1. 为什么选择LightDMDWM组合 如果你正在寻找一个既轻量又高度可定制的Linux桌面环境,LightDM搭配DWM的组合绝对值得考虑。我用了整整三个月时间测试各种显示管理器和窗口管理器的搭配,最终发现这套方案在资源占用和操作效率上达到了完美平衡。 先说说Li…...
B站视频下载终极教程:3步获取无水印高清视频
B站视频下载终极教程:3步获取无水印高清视频 【免费下载链接】BiliDownload B站视频下载工具 项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownload 想要下载B站视频却苦于找不到合适的工具?BiliDownload是你的最佳选择!这款基…...
如何高效清理游戏平台残留文件:SteamCleaner一站式解决方案指南
如何高效清理游戏平台残留文件:SteamCleaner一站式解决方案指南 【免费下载链接】SteamCleaner :us: A PC utility for restoring disk space from various game clients like Origin, Steam, Uplay, Battle.net, GoG and Nexon :us: 项目地址: https://gitcode.c…...
鸿蒙一气总论(四)
第四卷 文明溯源四域同源 华夏主脉定宗 卷首引 天地既定,人神分途,万物安立,四海生民逐水土而居。 四方之地,山川不同、水土异质、气运有别, 然归根溯源,同承鸿蒙一气,共禀混元道体。 四大…...
ARM TRCCNTCTLR寄存器详解与调试技巧
1. ARM Trace Counter控制寄存器TRCCNTCTLR深度解析在嵌入式系统调试和性能分析领域,硬件计数器是不可或缺的关键工具。作为ARM架构调试系统的重要组成部分,Trace Counter Control Register(TRCCNTCTLR)系列寄存器为开发者提供了精…...
城通网盘下载限速终结者:ctfileGet让你的文件下载快人一步
城通网盘下载限速终结者:ctfileGet让你的文件下载快人一步 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否曾经面对城通网盘那令人绝望的下载速度而束手无策?当其他网盘都…...
Apache Atlas UI实战:从数据资产发现到血缘追溯的完整操作指南
1. Apache Atlas入门:数据治理的瑞士军刀 第一次接触Apache Atlas时,我正被公司混乱的数据资产搞得焦头烂额。报表数据频繁出错却找不到源头,新来的同事总在问"这个字段是什么意思",业务部门抱怨找不到他们需要的数据..…...
