Tetikleyici E-posta uzantısını kullanma

Tetikleyici e-posta uzantısı ( firestore-send-email ), bir Cloud Firestore koleksiyonundaki belgelere göre otomatik olarak e-posta göndermenizi sağlar. Koleksiyona bir belge eklemek, belgenin alanlarından oluşturulan bir e -posta göndermek için bu uzantıyı tetikler. Belgenin üst düzey alanları bcc cc (her biri destekleyici UID'ler) dahil olmak to belirtir. Belgenin message alanı, konu satırı ve e -posta gövdesi (düz metin veya html) gibi diğer e -posta öğelerini belirtir.

Bu uzantıyı tetikleyecek temel bir belge yazma örneği aşağıda verilmiştir:

admin.firestore().collection('mail').add({
  to: 'someone@example.com',
  message: {
    subject: 'Hello from Firebase!',
    html: 'This is an <code>HTML</code> email body.',
  },
})

Ayrıca, bu uzantıyı, gidon şablonlarını kullanarak e -postaları oluşturacak şekilde yapılandırabilirsiniz.

Kurulum öncesi kurulum

Uzantıyı yüklemeden önce şu adımları tamamlayın:

  1. Giden posta hizmetinizi kurun.

    Tetikleyici e -posta uzantısını yüklediğinizde, uzantının e -posta göndermek için kullandığı bir SMTP sunucusunun bağlantı ve kimlik doğrulama ayrıntılarını belirtmeniz gerekir. Bu genellikle SendGrid, MailGun veya MailChimp TransActional e -postası gibi bir e -posta dağıtım hizmeti tarafından sağlanır, ancak kendiniz çalıştırdığınız bir sunucu da olabilir.

  2. Bir e -posta belgesi koleksiyonu oluşturun.

    Tetikleyici e -posta uzantısı, belirttiğiniz bir Cloud Firestore koleksiyonundaki yeni belgeleri dinler. Yeni bir belge bulduğunda, uzantı belgenin alanlarına göre bir e -posta gönderir. Bu amaçla herhangi bir Cloud Firestore koleksiyonunu kullanabilirsiniz; Bu sayfadaki örnekler email adlı bir koleksiyon kullanır.

  3. E -posta belgeleriniz koleksiyonunuz için güvenlik kuralları ayarlayın.

    Bu uzantı, doğrudan istemci uygulamalarından e -posta teslimatını tetiklemek için kullanılabilir. Ancak, potansiyel istismardan kaçınmak için istemcinin koleksiyona erişimini dikkatlice kontrol etmelisiniz (kullanıcıların şirketinizin adresinden keyfi e -postalar gönderebilmesini istemezsiniz!).

    Güvenlik kuralları uygulamadan uygulamaya değişecektir, ancak her zaman e-postaların yalnızca hedeflenen alıcılara gönderildiğinden ve serbest biçimli içeriğin minimumda tutulduğundan emin olmalısınız. Şablonlar burada yardımcı olabilir - şablona doldurulan verilerin bir kullanıcının tetiklenmesine izin verilmesi gerektiğine dair beklentilerinizi eşleştirdiğini doğrulamak için güvenlik kurallarını kullanabilirsiniz.

  4. İsteğe bağlı: Bir kullanıcı koleksiyonu ayarlayın.

    Bu uzantının temel kullanımı altında, mesaj belgesinin to , cc ve bcc alanlarındaki e -posta adreslerini belirterek bir e -postanın alıcılarını belirtirsiniz. Alternatif olarak, Cloud Firestore'da bir kullanıcı veritabanınız varsa, kullanıcıların UID'lerini kullanarak alıcıları belirleyebilirsiniz. Bunun çalışması için kullanıcılarınızın koleksiyonu bu kriterleri karşılamalıdır:

    • Koleksiyon, kullanıcı kimliklerine göre anahtarlanmalıdır. Yani, koleksiyondaki her kullanıcı belgesinin belge kimliği, kullanıcının Firebase kimlik doğrulama UID'si olmalıdır.
    • Her kullanıcı belgesinin kullanıcının e -posta adresini içeren bir email alanı olması gerekir.
  5. İsteğe bağlı: Bir şablon koleksiyonu kurun.

    Gidon şablonlarını kullanarak e -postalar oluşturabilirsiniz. Bunu yapmak için şablonlarınızı içermek için bir bulut firestore koleksiyonuna ihtiyacınız olacaktır.

    Ayrıntılar için tetikleme e -posta uzantısına sahip gidon şablonlarını kullanın .

Uzantıyı yükleyin

Uzantıyı yüklemek için A Firebase Uzantısı Yükleme sayfasındaki adımları izleyin. Özetle, aşağıdakilerden birini yapın:

Uzantıyı yüklediğinizde, SMTP bağlantı bilgilerinizi ve daha önce ayarladığınız Cloud Firestore koleksiyonlarını belirtmeniz istenecektir.

Uzantıyı kullanın

Kurulumdan sonra, bu uzantı tüm belge yazılarını yapılandırdığınız koleksiyona izler. E -posta, belgenin alanlarının içeriğine göre teslim edilir. Üst düzey alanlar e-postanın gönderen ve alıcılarını belirtir. message alanı, e -posta gövdesi de dahil olmak üzere teslim edilecek e -postanın ayrıntılarını içerir.

Örnek: Bir e -posta gönderin

Basit bir mesaj göndermek için, mesajlar koleksiyonunuza to Alan ve aşağıdaki içeriğe sahip bir message alanı ile bir belge ekleyin:

to: ['someone@example.com'],
message: {
  subject: 'Hello from Firebase!',
  text: 'This is the plaintext section of the email body.',
  html: 'This is the <code>HTML</code> section of the email body.',
}

Gönderen ve alıcı alanları

Belgenin üst düzey alanları e-posta gönderen ve alıcı bilgilerini sağlar. Mevcut alanlar:

  • Gönderen: Gönderenin e -posta adresi. Belgede belirtilmezse, yapılandırılmış "Adres'den Varsayılan" parametresini kullanır.
  • Cevap: Yanıtla e-posta adresi. Belgede belirtilmezse, yapılandırılmış "Varsayılan Yanıtla Adres" parametresini kullanır.
  • TO: Tek bir alıcı e -posta adresi veya birden fazla alıcı e -posta adresi içeren bir dizi.
  • Touids: Alıcı UID'leri içeren bir dizi.
  • CC: Tek bir alıcı e -posta adresi veya birden fazla alıcı e -posta adresi içeren bir dizi.
  • CCUIDS: CC alıcısı UID'leri içeren bir dizi.
  • BCC: Tek bir alıcı e -posta adresi veya birden fazla alıcı e -posta adresi içeren bir dizi.
  • BCCUIDS: BCC alıcısı UID'leri içeren bir dizi.
  • Başlıklar: Ek başlık alanlarının bir nesnesi (örneğin, {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"} ).

Not: toUids , ccUids ve bccUids seçenekleri, bir Cloud Firestore belgesindeki e -posta adreslerine anahtarlanmış kullanıcı UID'lerine dayalı e -postalar sunar. Bu alıcı seçeneklerini kullanmak için, uzantının "Kullanıcılar Koleksiyonu" parametresi için bir Cloud Firestore koleksiyonu belirtmeniz gerekir. Uzantı daha sonra toUids , ccUids ve/veya bccUids alanlarında belirtilen her UID için email alanını okuyabilir.

Mesaj alanı

Belgenin message alanı e -posta için ham teslimat bilgileri içerir. Bu alan genellikle yalnızca kendi sunucularınızda veya bulut işlevlerinizde çalışan güvenilir kodla doldurulmalıdır (aşağıdaki "Güvenlik Kuralları ve E -posta Gönderme" bölümüne bakın).

message alanı için kullanılabilir özellikler:

  • MessageID: Varsa e -posta için bir mesaj kimliği başlığı.
  • Konu: E -postanın konusu.
  • Metin: E -postanın düz metin içeriği.
  • HTML: E -postanın HTML içeriği.
  • AMP: E -postanın AMP4Email içeriği.
  • Ekler: Ek (ler) içeren bir dizi; Desteklenen NodeMailer seçenekleri : UTF-8 Dize, Özel İçerik Türü, URL, Kodlanmış Dize, Veri URI ve önceden üretilmiş MIME düğümü (e-postanızın bulut sunucusunun dosya sistemine erişimi olmadığını unutmayın).

Gelişmiş kullanım

Bu uzantının daha gelişmiş kullanımı hakkında bilgi edinin: