检查电子邮件是否在谷歌Apps脚本有效
-
25-09-2019 - |
题
我使用的是内置的API,针对谷歌电子表格的脚本发送一些预订确认,目前我的脚本休息,如果有人填补了一个无效的电子邮件。我喜欢它只是保存一些数据还没有被通知的客人名单,然后通过预约进行循环。
这是我的当前代码(简化的):
// The variables email, subject and msg are populated.
// I've tested that using Browser.msgBox(), and the correct column values are
// found and used
// The script breaks here, if an incorrect email address has been filled in
MailApp.sendEmail(email, subject, msg)
据上MailApp
类仅有的两个方法中的文档是发送电子邮件和检查每日配额 - 没有什么有关检查有效的电子邮件地址 - 所以我真的不知道是什么标准,必须满足该类接受请求,因而不能写一个验证例程
解决方案
保持冷静,捕捉和登录异常和进位:
try {
// do stuff, including send email
MailApp.sendEmail(email, subject, msg)
} catch(e) {
Logger.log("Error with email (" + email + "). " + e);
}
其他提示
如果您需要验证电子邮件地址事先,创建你的驱动器中的空白电子表格。然后,运行下面的功能,改变的 testSheet 变量指向所创建的电子表格。该函数将做一个简单的正则表达式测试,以赶上畸形的地址,然后检查的地址实际上是通过尝试暂时将其添加为电子表格上的观众有效。是否可以添加的地址,它必须是有效的。
function validateEmail(email) {
var re = /\S+@\S+\.\S+/;
if (!re.test(email)) {
return false;
} else {
var testSheet = SpreadsheetApp.openById(arbitrarySpreadsheetInYourDrive);
try {
testSheet.addViewer(email);
} catch(e) {
return false;
}
testSheet.removeViewer(email);
return true;
}
}
不隶属于 StackOverflow