The Google Script scans your Gmail mailbox for messages from mailer-daemon@gmail.com and prepares a bounce email report logging the failed deliveries in a Google Spreadsheet. See sample Gmail bounce report
function getBouncedEmails() { /* Written by Amit Agarwal */ /* Email: amit@labnol.org */ // Write the bounced email report to a Google SpreadsheetApp var sheet = SpreadsheetApp.getActiveSheet(); sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn()).clearContent(); // Find all emails returned via Gmail Mailer Maemon var query = "from:(mailer-daemon@google.com OR mailer-daemon@googlemail.com)"; // Get the most recent 500 bounced email messages in Gmail GmailApp.search(query, 0, 500).forEach(function(thread) { thread.getMessages().forEach(function(message) { if (message.getFrom().indexOf("mailer-daemon") !== -1) { var body = message.getPlainBody(); // Get the bounced email address from the body var matches = body.match(/Delivery to[\s\S]+?(\S+\@\S+)\s([\s\S]+?)----- Original Message/); if (matches) { // Get the exact reason for the email bounce var reason = matches[2].match(/The error.+:\s+(.+)/) || matches[2].match(/Technical details.+:\s+(.+)/); if (reason) { // Save the data in a Google Spreadsheet sheet.appendRow([ thread.getLastMessageDate(), matches[1], reason[1].replace(/ (Please|Learn|See).*$/, ""), thread.getPermalink(), thread.getFirstMessageSubject() ]); } } } }); }); }