我一直在努力使这项工作奏效,但无法解决。
我需要检索所有邮件ID,然后使用其ID获取那些邮件。因为它不是异步的,所以在导出数据时我什么也没得到。
function listMessages(auth) {
const gmail = google.gmail({version: 'v1', auth});
let data;
gmail.users.messages.list({
'userId': 'mail address',
'q': 'some query'
}, (err, res) => {
res.data.messages.forEach(element => {
console.log(element);
mails.push(element.id);
});
mails.forEach((id) => {
request = gmail.users.messages.get({
'userId': 'sedatcyalcin@gmail.com',
'id': id
}, (err, res) => {
data = res.data.snippet;
console.log(data);
});
})
});
}
我可以导出邮件,但不能导出数据;
答案 0 :(得分:0)
也许可以分为2个函数,如果一个函数返回promise可以解决它。
const listMessages = auth => {
return new Promise((resolve , reject)=>{
const gmail = google.gmail({version: 'v1', auth});
let data;
gmail.users.messages.list({
'userId': 'mail address',
'q': 'some query'
}, (err, res) => {
res.data.messages.forEach(element => {
console.log(element);
mails.push(element.id);
resolve(mails)
});
})
})
}
const getMessages = () => {
listMessages().then(mails=>{
mails.forEach((id) => {
request = gmail.users.messages.get({
'userId': 'sedatcyalcin@gmail.com',
'id': id
}, (err, res) => {
data = res.data.snippet;
console.log(data);
});
})
})
}
伯德·博伊尔·迪恩(Birde boyle dene),奥尔马斯·伊斯·索鲁努·达哈detaylıanlatırsan院子和电影院。
答案 1 :(得分:0)
这就是我的工作方式:
appleDelegate.swift
我在此行下面的index.js文件中调用了它:
function getRecentEmail(auth) {
const gmail = google.gmail({ version: 'v1', auth });
// Only get the recent email - 'maxResults' parameter
gmail.users.messages.list({ auth: auth, userId: 'me', maxResults: 1, }, function (err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return;
}
// Get the message id which we will need to retreive tha actual message next.
var message_id = response['data']['messages'][0]['id'];
// Retreive the actual message using the message id
gmail.users.messages.get({ auth: auth, userId: 'me', 'id': message_id }, function (err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return;
}
email = response.data
console.log(email)
});
}); }
答案 2 :(得分:0)
这是我基于TS的列出邮件的解决方案。
请注意,格式:“ raw”返回base64。如果只希望每条与查询匹配的电子邮件的摘要,请删除该行。
const gmail = google.gmail({ version: 'v1', auth });
let data: string | undefined;
const mails: string[] = [];
gmail.users.messages?.list(
{
userId: 'me',
q: 'from: some query',
maxResults: 1,
},
(err, res) => {
if (!res || !res.data || !res.data.messages) {
console.log('No Messages Found');
return;
}
res.data.messages.forEach((message) => {
console.log(`first api call: ${message}`);
mails.push(message.id ?? '');
});
mails.forEach((id) => {
const req = gmail.users.messages.get(
{
userId: 'me',
id,
format: 'raw',
},
(err, res) => {
// data = res?.data.snippet!;
console.log(res?.data);
}
);
});
}
);
};