官方接口文档
阿里云邮件推送
PHP对接接口代码参考
<?php
class SendMail {
private static $apiUrl = "http://dm.ap-southeast-1.aliyuncs.com/?";
private static $AccountName = "发信地址";
private static $AddressType = 1;
private static $ReplyToAddress = false;
public $Subject;
public $ToAddress;
private static $Action = "SingleSendMail";
private static $ClickTrace = 1;
public $FromAlias;
public $HtmlBody;
public $TagName;
public $TextBody;
private static $AccessKeyId = "";
private static $AccessKeySecret = "";
public function __construct()
{
self::$apiUrl = "http://dm.ap-southeast-1.aliyuncs.com/?";
self::$AccountName = "发信地址";
self::$AddressType = 1;
self::$ReplyToAddress = "true";
$this->Subject = "验证码";
$this->ToAddress = "";
self::$Action = "SingleSendMail";
self::$ClickTrace = 1;
$this->FromAlias = "";
$this->HtmlBody = "你好啊";
$this->TagName = "";
$this->TextBody = "你好啊";
}
public function send() {
$data = [
"Format" => "JSON",
"Version" => "2017-06-22",
"AccessKeyId" => self::$AccessKeyId,
"SignatureMethod" => "HMAC-SHA1",
"Timestamp" => gmdate(DATE_ATOM),
"SignatureVersion" => "1.0",
"SignatureNonce" => time().session_create_id(),
"RegionId" => "cn-hangzhou",
"AccountName" => self::$AccountName,
"AddressType" => self::$AddressType,
"ReplyToAddress" => self::$ReplyToAddress,
"Subject" => $this->Subject,
"ToAddress" => $this->ToAddress,
"Action" => self::$Action,
"ClickTrace" => self::$ClickTrace,
"FromAlias" => $this->FromAlias,
"HtmlBody" => $this->HtmlBody,
"TagName" => $this->TagName,
"TextBody" => $this->TextBody,
];
$stringToSign = $this->stringToSign("GET", $data);
$data['Signature'] = $this->getSignature($stringToSign, self::$AccessKeySecret);
$param = http_build_query($data, '', '&', PHP_QUERY_RFC3986);
return $this->doGet(self::$apiUrl.$param);
}
public function stringToSign($http_method,array $data) {
ksort($data);
$CanonicalizedQueryString = http_build_query($data, '', '&', PHP_QUERY_RFC3986);
return $http_method . "&" . urlencode("/") . "&" . urlencode($CanonicalizedQueryString);
}
public function getSignature($toSign, $encryptKey) {
return base64_encode(hash_hmac("sha1", $toSign, $encryptKey . "&", true));
}
public function doGet($url,$defaultHeader = true){
if ($defaultHeader) {
$headerArray =array("Content-type:application/x-www-form-urlencoded;","Accept:application/json");
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray);
$output = curl_exec($ch);
curl_close($ch);
$output = json_decode($output,true);
return $output;
}
public function doPost($url,$data){
$data = json_encode($data);
$headerArray =array("Content-type:x-www-form-urlencoded;","Accept:application/json");
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl);
return json_decode($output,true);
}
}
$object = new SendMail();
$res = $object->send();
var_dump($res);