我正在使用 Node.js 中的 Google Workspace 管理 SDK 报告 API - 电子邮件日志搜索 来检索从我的网域发送的邮件的电子邮件日志。我可以获得如下详细信息:
但是,我找不到任何提供电子邮件发送状态的字段或属性(例如,是否已发送、退回、失败等)。虽然我可以在管理控制台中看到交付状态。
我的问题:
Google Workspace Admin SDK 是否提供电子邮件的递送状态信息?如果有的话哪里可以找到?
如果 API 不包含此信息,是否有其他 Google API 或方法可用于确定电子邮件的发送状态?
我已经浏览了电子邮件日志搜索文档,但我找不到任何有关检索电子邮件发送状态的参考。
这是我的代码的相关部分:
const { google } = require("googleapis"););
const credentials = require('../file-path-to-creds.json'););
// Scopes for Gmail API access
const scopes = ['https://www.googleapis.com/auth/admin.reports.audit.readonly', 'https://mail.google.com/', 'https://www.googleapis.com/auth/gmail.readonly'];
const AuthClient = new google.auth.GoogleAuth({ credentials, scopes, clientOptions:{ subject: '[email protected]' } });
const admin = google.admin({ version: "reports_v1", auth: AuthClient }); });
async function getGmailReports() {
const {afterDate, beforeDate} = getDateRangeQuery(14);
let senders = [];
let recievers = [];
let messageIds = [];
await admin.activities.list({ userKey: 'all', applicationName: 'admin',
eventName: 'EMAIL_LOG_SEARCH',
startTime: afterDate, endTime: beforeDate,
}, (err, res) => {
if (err) { return console.error('API returned an error : ', err); }
if (!res.data.items || res.data.items.length === 0) { return console.log('No Email log search reports found!'); }
res.data.items.forEach((list, idx) => {
list.events.forEach((event, indx) => {
event.parameters.forEach((param, index) => {
if (param.name === 'EMAIL_LOG_SEARCH_SENDER') { senders.push({ email: param.value, index: `${idx}-${indx}-${index}` }); }
if (param.name === 'EMAIL_LOG_SEARCH_RECIPIENT') { recievers.push({ email: param.value, index: `${idx}-${indx}-${index}` }); }
if (param.name === 'EMAIL_LOG_SEARCH_MSG_ID') { messageIds.push({ id: param.value, index: `${idx}-${indx}-${index}` }); }
});
});
});
})};
function getDateRangeQuery(days = 2) {
let now = new Date();
const beforeDate = new Date(now).toISOString();
const afterDate = new Date(now.setDate(now.getDate() - days)).toISOString();
return {afterDate, beforeDate};
};
module.export = getGmailReports;
如果您需要更多信息,请告诉我。任何帮助将不胜感激! 😊
你有没有得到任何结果?我基本上是在过去 7 天内搜索电子邮件并获得空 EMAIL_LOG_SEARCH_RECIPIENT 的结果。没有给我任何有用的东西。
例如,UI 中的同一用户返回 30 多个结果,但这样做会返回 7 个结果,但接收器全部为空。