Tujuan
Tutorial ini menunjukkan cara menggunakan data Spreadsheet untuk mengirim email ke orang yang berbeda.
Waktunya menyelesaikan
Sekitar 10 menit
Prasyarat
Sebelum Anda memulai tutorial ini, Anda harus:
- Merasa nyaman menggunakan Editor Skrip dan memiliki pengalaman menggunakan fungsi Spreadsheet paling dasar.
Bagian 1: Menjalankan contoh sederhana
- Buat Spreadsheet kosong baru
- Tambahkan beberapa baris data. Setiap baris harus berisi alamat email di kolom A dan pesan email yang akan dikirim ke orang itu di kolom B. Untuk tujuan pengujian, Anda mungkin ingin menggunakan alamat email Anda sendiri di kolom A. Berikut ini contohnya:
- Buka Script Editor dengan mengklik menu ‘Tools’, lalu pilih ‘Script editor …’.
- Salin dan tempel skrip berikut:
/** * Sends emails with data from the current spreadsheet. */ function sendEmails() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 2; // First row of data to process var numRows = 2; // Number of rows to process // Fetch the range of cells A2:B3 var dataRange = sheet.getRange(startRow, 1, numRows, 2); // Fetch values for each row in the Range. var data = dataRange.getValues(); for (var i in data) { var row = data[i]; var emailAddress = row[0]; // First column var message = row[1]; // Second column var subject = 'Sending emails from a Spreadsheet'; MailApp.sendEmail(emailAddress, subject, message); } }
- Simpan Script
- Pilih fungsi sendEmails di kotak kombo fungsi dan klik “Run”
- Lihat Kotak Masuk email Anda. Pesan biasanya segera dikirim, tetapi kadang-kadang butuh beberapa detik.
Anda mungkin ingin melihat dokumentasi untuk metode berikut yang digunakan dalam skrip di atas:
Sheet.getRange()
(perhatikan bahwa ada empat versi dari metode ini)Range.getValues()
MailApp.sendEmail()
(perhatikan bahwa ada empat versi dari metode ini)Bagian 2: Perbaikan
Anda mungkin ingin menandai sel di setiap baris setiap kali email dikirim. Dengan cara ini, jika skrip Anda berhenti berjalan (misalnya, jika ada bug dalam kode Anda atau Anda mencapai jumlah maksimum email yang dapat Anda kirim setiap menit atau hari) Anda akan dapat menjalankan kembali skrip nanti dan menghindari mengirim duplikat email.
Berikut ini adalah ekstensi sederhana dari kode yang menetapkan sel dalam kolom C ke ‘EMAIL_SENT’ untuk setiap baris setelah sendEmail dipanggil.gmail / sendEmails / sendEmails.gsLihat di GitHub
// Konstanta ini ditulis dalam kolom C untuk baris yang merupakan email // telah berhasil dikirim. var EMAIL_SENT = 'EMAIL_SENT'; / ** * Mengirim email non-duplikat dengan data dari spreadsheet saat ini. * / fungsi sendEmails2 () { var sheet = SpreadsheetApp.getActiveSheet (); var startRow = 2; // Baris pertama data untuk diproses var numRows = 2; // Jumlah baris untuk diproses // Ambil rentang sel A2: B3 var dataRange = sheet.getRange (startRow, 1, numRows, 3); // Ambil nilai untuk setiap baris dalam Rentang. var data = dataRange.getValues (); untuk (var i = 0; i <data.length; ++ i) { var row = data [i]; var emailAddress = baris [0]; // Kolom pertama var message = row [1]; // Kolom kedua var emailSent = baris [2]; // Kolom ketiga if (emailSent! == EMAIL_SENT) {// Mencegah pengiriman duplikat var subject = 'Mengirim email dari Spreadsheet'; MailApp.sendEmail (alamat surel, subjek, pesan); sheet.getRange (startRow + i, 3) .setValue (EMAIL_SENT); // Pastikan sel diperbarui segera jika skrip terputus SpreadsheetApp.flush (); } } }
Tidak ada komentar:
Posting Komentar