正在尝试获取Paypal新订阅用户电子邮件的文本



我用这个脚本遇到了麻烦。我正在尝试获取一封PayPal电子邮件的正文,该电子邮件告诉我有一个新的订阅。我需要新用户的电子邮件地址。所以…

  1. 我得到线索
  2. 我找到了尸体。它充满了CSS和代码,我看不到任何关于使用的信息。在源代码的网页上,似乎都是代码
  3. 当我把它输出到电子表格显示模式对话框时,它看起来很完美。我看到了我想要得到的电子邮件地址
  4. 有办法得到那条短信吗?然后我可以得到电子邮件地址,剩下的对我来说很容易:-(

我希望我解释得对。这是我试图从中获取文本的最远方法。谢谢你能提供的任何帮助。也许这太离谱了,在这种情况下,我会放弃它。但我只需要这个电子邮件地址!

function getEmailFromFolder() {
// Log the subject lines of the threads labeled with MyLabel
var label = GmailApp.getUserLabelByName("NewVWMember");
var threads = label.getThreads();
var message = threads[0].getMessages()[0]; // Get first message
var body = message.getBody();
var output = HtmlService.createHtmlOutput(body);
//var n = body.search("mailTo");

var ui = SpreadsheetApp.getUi();
ui.showModalDialog(output, 'I want this!');
}

答案:

您可以使用正则表达式从字符串中提取所有电子邮件

正则表达式:

有多种不同的方法可以做到这一点,例如:

/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9_-]+)/g

此正则表达式的Rundown:

  • [a-zA-Z0-9._-]+:匹配用户名-[A-Z][a-z][0-9]._中任意数量的字符
  • @与文字字符@匹配
  • [a-zA-Z0-9._-]+:匹配域-再次类似于用户名,[A-Z][a-z][0-9]._中的任意数量的字符
  • .:覆盖文字.
  • [a-zA-Z0-9._-]+:与顶级域匹配,可以是[A-Z][a-z][0-9]._中的任意数量的字符
  • g:全局返回,因此在找到第一封电子邮件后不会返回

您可以在此处测试RegEx101上的正则表达式。

电子邮件提取:

使用正则表达式,只需几行额外的代码就可以从邮件正文中提取一组电子邮件地址:

function getEmailFromFolder() {  
var regex = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9_-]+)/g;
var label = GmailApp.getUserLabelByName("NewVWMember");
var threads = label.getThreads();
var message = threads[0].getMessages()[0];
var body = message.getBody();

var output = HtmlService.createHtmlOutput(body);  
var emails = output.getContent().match(regex).toString();    
var html = HtmlService.createHtmlOutput(emails);
var ui = SpreadsheetApp.getUi();
ui.showModalDialog(html, 'I want this!');
}

这里,output是消息中所有电子邮件地址的字符串。它需要转换为字符串才能在模式对话框中显示,但您可以根据需要进行处理。

参考文献:

  • 正则表达式-维基百科
  • RegEx 101

相关内容

最新更新