Позвольте мне предисловие к моему вопросу, сказав, что я не разработчик JS или даже веб-разработчик, так что несите меня! Я пытаюсь создать gs-скрипт, который удаляет сообщения, которые старше n месяцев, которые имеют определенную метку и принадлежат к данному отправителю.Получить адрес отправителя сообщения от API Gmail
Я думаю, что у меня есть это вниз, но Gmail API getFrom()
метод, кажется, обратный адрес отправителя в формате "First Last" <[email protected]>
, а не только [email protected]
. В настоящее время я могу обойти это из-за того, что я знаю эту информацию, но есть ли лучший способ сделать это, чтобы код работал исключительно на фактическом адресе электронной почты?
Мой текущий код:
function auto_delete_emails() {
var label = GmailApp.getUserLabelByName("foo");
var sender = "\"Foo Bar\" <[email protected]>";
if (label != null) {
var delayDays = 30
var maxDate = new Date();
maxDate.setDate(maxDate.getDate() - delayDays);
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
var messages = GmailApp.getMessagesForThread(threads[i]);
var from = messages[0].getFrom();
if (from == sender) {
if (threads[i].getLastMessageDate < maxDate) {
threads[i].moveToTrash();
}
}
}
}
}
Я видел вопрос, который использовал регулярное выражение, чтобы исправить это, но я едва не понимаю регулярное выражение, не говоря уже, как применить в данном контексте или как пример работал (или Didn «т!).
Предложения по другим улучшениям по этому коду также приветствуются.
** Regex ** - единственный способ брата! 'var from = messages [0] .getFrom(). replace (/^.+ <([^>] +)> $ /," $ 1 ");' – iJay