aardio 文档

aardio 范例: 调用临时邮箱 mail.tm 接口

如果要在这里调用

//调用临时邮箱 mail.tm 接口

import console; 
import string.html;
import web.rest.jsonClient;

var http = web.rest.jsonClient();
var mailApi = http.api("https://api.mail.tm/");

console.showLoading("正在登录");

// 获取令牌
var tokenData, err = mailApi.token.post(
    address = "aardio@virgilian.com";//你的邮件地址
    password = "password"; //密码
);

if(err){
    return console.errorPause(err)
}

// 设置令牌
http.setAuthToken(tokenData.token);

// 获取邮件总数
var messages, err = mailApi.messages.get(page=1);
var totalItems = messages[["hydra:totalItems"]] || 0;

var page = 0;
for(i=1;math.ceil(totalItems/30);30){
    page++;

    //分页获取邮件
    messages, err = mailApi.messages.get(page=page);
    var list = messages["hydra:member"];
    for(i=1; #list){
        var mail = list[i];
        console.log(mail.from.address,mail.subject || mail.intro)

        var detail = mailApi.messages[mail.id].get()

        //detail.text 是字符串,但 detail.html 是字符串数组
        console.log( string.html.toText(detail.html) ) 

        //删除邮件
        mailApi.messages[mail.id].delete()
    }
}

// 获取账号信息
var me,err = mailApi.me.get();

console.showLoading("正在监听新邮件");       

// 使用 mercure 协议监听 mail.tm 新邮件(实际上就是 SSE 流)
var eventSource = http.api("https://mercure.mail.tm/.well-known/mercure");

var ok,err = eventSource.get({topic = "/accounts/"+me.id}, function(sseMessage){
    var data = sseMessage.data;
    if(data[["@context"]]=="/contexts/Message"){
        console.log("收到新邮件")
        console.log("发件邮箱::",data.from.address)
        console.log("主题 / 简介:",data.subject || data.intro)
        /*
        http 对象已进入流模式,
        如果要在这里调用 https://api.mail.tm/messages/{id}/get 
        则需要创建新的 web.rest.jsonClient
        */

    }
});

console.pause();

Markdown 格式