全部产品
阿里云办公

Php SDK 手册

更新时间:2018-09-11 10:18:54

创建Access Key

  1. 登录 Access Key 管理控制台
  2. 单击页面右上角按钮 创建 Access Key,弹出创建对话框。
  3. 阅读《API使用规范》后,单击 同意并创建

注:也可以使用阿里云访问控制服务创建的 Access Key。

安装 PHP SDK

开发环境

阿里云邮件推送的 PHP SDK 支持 PHP 5.3 或以上版本。

SDK 下载

直接下载:http://aliyundm.oss-cn-hangzhou.aliyuncs.com/example/aliyun-php-sdk-dmV3.1.1.zip

SDK 安装

全新安装

在下载的压缩包解压文件夹中找到 aliyun-php-sdk-core 和 aliyun-php-sdk-dm 文件夹,将其放置在您的网站的本地目录下,您就可以使用阿里云邮件推送的 PHP SDK 了。

增量安装

如果您之前已经使用阿里云其他产品(如 ECS、Green、MTS、Push、RDS、负载均衡)的 PHP SDK,建议进行以下步骤安装:

  1. 将下载的压缩包解压后的 aliyun-php-sdk-dm 文件夹放在与 aliyun-php-sdk-core 同一目录下。
  2. 打开您的网站目录的 aliyun-php-sdk-core/Config.php,添加邮件推送产品 SDK 到自动加载列表:
    1. Autoloader::addAutoloadPath("aliyun-php-sdk-dm");
  3. 用下载的 aliyun-php-sdk-core/RpcAcsRequest.php、aliyun-php-sdk-core/DefaultAcsClient.php 和 aliyun-php-sdk-core\Http\HttpHelper.php 覆盖之前文件。(覆盖文件是为了支持更长的邮件正文。)

发送邮件示例

调用单一发信 API 示例 (SingleSendMail 接口说明):

  1. <?php
  2. include_once 'aliyun-php-sdk-core/Config.php';
  3. use Dm\Request\V20151123 as Dm;
  4. //需要设置对应的region名称,如华东1(杭州)设为cn-hangzhou,新加坡Region设为ap-southeast-1,澳洲Region设为ap-southeast-2。
  5. $iClientProfile = DefaultProfile::getProfile("cn-hangzhou", "<your accessKey>", "<your accessSecret>");
  6. //新加坡或澳洲region需要设置服务器地址,华东1(杭州)不需要设置。
  7. //$iClientProfile::addEndpoint("ap-southeast-1","ap-southeast-1","Dm","dm.ap-southeast-1.aliyuncs.com");
  8. //$iClientProfile::addEndpoint("ap-southeast-2","ap-southeast-2","Dm","dm.ap-southeast-2.aliyuncs.com");
  9. $client = new DefaultAcsClient($iClientProfile);
  10. $request = new Dm\SingleSendMailRequest();
  11. //新加坡或澳洲region需要设置SDK的版本,华东1(杭州)不需要设置。
  12. //$request->setVersion("2017-06-22");
  13. $request->setAccountName("控制台创建的发信地址");
  14. $request->setFromAlias("发信人昵称");
  15. $request->setAddressType(1);
  16. $request->setTagName("控制台创建的标签");
  17. $request->setReplyToAddress("true");
  18. $request->setToAddress("目标地址");
  19. //可以给多个收件人发送邮件,收件人之间用逗号分开,若调用模板批量发信建议使用BatchSendMailRequest方式
  20. //$request->setToAddress("邮箱1,邮箱2");
  21. $request->setSubject("邮件主题");
  22. $request->setHtmlBody("邮件正文");
  23. try {
  24. $response = $client->getAcsResponse($request);
  25. print_r($response);
  26. }
  27. catch (ClientException $e) {
  28. print_r($e->getErrorCode());
  29. print_r($e->getErrorMessage());
  30. }
  31. catch (ServerException $e) {
  32. print_r($e->getErrorCode());
  33. print_r($e->getErrorMessage());
  34. }
  35. ?>

另调用模板批量发信请使用BatchSendMailRequest,相关修改

  1. $request->setTemplateName("test模板");
  2. $request->setReceiversName("测试-test");

其中“test模板”为模板名称;“测试-test”为收件人列表名称。