メールがGoogle Apps Scriptで有効であるかどうかの確認
-
25-09-2019 - |
質問
私は誰かが無効な電子メールに記入している場合、一部の予約確認、および現在、私のスクリプトのブレークを送信するためにGoogleスプレッドシートに対してスクリプトを作成するために内蔵された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
クラスの2つのメソッドのみのドキュメントによるにしていますセンドメールや日々のクォータチェック - 有効な電子メールアドレスの確認については何も - 。私は本当に基準が要求を受け入れるために、クラスのために満たされなければならないので、検証ルーチンを記述することはできませんかわからないので、
解決
ステイ穏やかな、キャッチし、上の例外とキャリーを記録します:
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