التحقق مما إذا كان البريد الإلكتروني صالحًا في البرنامج النصي لتطبيقات Google

StackOverflow https://stackoverflow.com/questions/4009085

سؤال

أنا أستخدم واجهة برمجة التطبيقات المدمجة للبرمجة النصية مقابل جداول بيانات Google لإرسال بعض تأكيدات الحجز ، وحاليًا فترات راحة البرنامج النصي إذا كان شخص ما قد ملأ رسالة بريد إلكتروني غير صالحة. أرغب في حفظ بعض البيانات فقط إلى قائمة بالضيوف الذين لم يتم إخطارهم ، ثم المضي قدماً في الحجوزات.

هذا هو الكود الحالي الخاص بي (مبسط):

// 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 متغير للإشارة إلى جدول البيانات الذي أنشأته. ستقوم الوظيفة بإجراء اختبار REGEX بسيط لالتقاط عناوين مشوهة ، ثم تحقق مما إذا كان العنوان صالحًا فعليًا من خلال محاولة إضافته مؤقتًا كمشاهد على جدول البيانات. إذا كان يمكن إضافة العنوان ، فيجب أن يكون صالحًا.

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;
  }
}

regex من كيفية التحقق من صحة عنوان البريد الإلكتروني في JavaScript؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top