閱讀155 返回首頁    go 阿裏雲


郵件推送__開發人員指南_消息服務-阿裏雲

MNS消息服務的Topic目前已經支持郵件推送,用戶發送到Topic裏麵的Message不僅可以被推送到HttpServer和MNS的Queue,現在也可以被同時推送到郵箱。

Endpoint格式

mail:directmail:XXX@YYY.com,其中"XXX@YYY.com"是您的郵箱地址。

前置條件

隻需要先開通阿裏雲的郵件推送服務即可,具體開通方式請參考下麵文檔。

開通郵件推送服務

  1. 確認已擁有在域名服務商注冊過的域名,一般可以使用您公司的域名 點此查詢和購買域名 以萬網為例:
  2. 進入郵件推送控製台
  3. 在郵件推送控製台配置域名

    點擊配置後會看到以下信息,會在第4步用到這些信息:
  4. 將配置信息填寫到第一步時確認的域名服務商處,具體填寫方法請參考域名解析配置 快捷鏈接: 萬網域名控製台
  5. 在郵件推送控製台配置發信地址

  6. 現在,您已經可以完成配置,可以在郵件推送控製台看到發信地址了。

控製台體驗流程

創建郵件訂閱
  1. 在MNS控製台創建Topic
  2. 進入Topic的"訂閱詳情"
  3. 創建訂閱
發送消息 (PublishMessage)
  1. 進入Topic列表頁麵
  2. 向Topic發送消息
  3. 配置郵件消息的相關屬性

    郵件推送的相關屬性可以參考這裏
  4. 發送消息,並查收郵件

JavaSDK訂閱代碼示例

CloudAccount cloudAccount = new CloudAccount(ACCESS_ID, ACCESS_KEY, ENDPOINT);
MNSClient client = cloudAccount.getMNSClient();

CloudTopic topic = null;
try {
    // 1. first create the topic
    String topicName = "TOPICNAME";
    TopicMeta meta = new TopicMeta();
    meta.setTopicName(topicName);
    topic = client.createTopic(meta);

    // 2. generate the mail endpoint
    String mailEndpoint = topic.generateMailEndpoint("mymailbox@alibaba-inc.com");

    // 3. now subscribe to topic
    SubscriptionMeta subMeta = new SubscriptionMeta();
    subMeta.setSubscriptionName(SUBNAME);
    subMeta.setEndpoint(mailEndpoint);

    topic.subscribe(subMeta);

    // 4. publish message
    RawTopicMessage msg = new RawTopicMessage();
    msg.setMessageBody("hello topic");

    // 4.1 set the necessary attributes for mail
    MessageAttributes messageAttributes = new MessageAttributes();
    MailAttributes mailAttributes = new MailAttributes();
    mailAttributes.setAccountName("direct_mail_account_name@aliyun-inc.com");
    mailAttributes.setSubject("TestMailSubject");
    messageAttributes.setMailAttributes(mailAttributes);

    // 4.2 publish
    TopicMessage msg2 = topic.publishMessage(msg, messageAttributes);
    System.out.println(msg2.getMessageId());
    System.out.println(msg2.getMessageBodyMD5());
} catch (ServiceException se) {
    System.out.println(se.getErrorCode() + se.getRequestId());
    System.out.println(se.getMessage());
    se.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}

Http Request Body示例

POST /topics/$TopicName/messages HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Tue, 08 Dec 2015 06:13:40 GMT
Content-Length:500
Content-Type:text/xml;charset=utf-8
Authorization: MNS 15B4D3461F177624206A:aibzWu1iDEx9LwO56+kHgA3eqmI=
x-mns-version: 2015-06-06

<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="https://mns.aliyuncs.com/doc/v1">
    <MessageBody>hello topic</MessageBody>
    <MessageAttributes>
        <DirectMail>{"Subject":"TestMailSubject","AccountName":"direct_mail_account_name@aliyun-inc.com","ReplyToAddress":0,"AddressType":0,"IsHtml":0}</DirectMail>
    </MessageAttributes>
</Message>

最後更新:2016-11-23 17:16:04

  上一篇:go 日誌管理__開發人員指南_消息服務-阿裏雲
  下一篇:go Queue推送__開發人員指南_消息服務-阿裏雲