Tetik E-posta uzantısını kullanma

Tetik E-posta uzantısı ( firestore-send-email ), bir Cloud Firestore koleksiyonundaki belgelere dayalı olarak e-postaları otomatik olarak göndermenize olanak tanır. Koleksiyona bir belge eklemek, bu uzantının belgenin alanlarından oluşturulmuş bir e-posta göndermesini tetikler. Belgenin üst düzey alanları, e-posta göndereni ve alıcıları to , cc ve bcc seçenekleri (her biri UID'leri destekler) içerir. Belgenin message alanı, konu satırı ve e-posta gövdesi (düz metin veya HTML) gibi diğer e-posta öğelerini belirtir.

İşte bu uzantıyı tetikleyecek temel bir örnek belge yazma:

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 isteğe bağlı olarak 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 ayarlayın.

    Tetik 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 İşlem E-postası gibi bir e-posta dağıtım hizmeti tarafından sağlanır, ancak sizin çalıştırdığınız bir sunucu da olabilir.

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

    Tetik E-posta uzantısı, belirttiğiniz bir Cloud Firestore koleksiyonundaki yeni belgeleri dinler. Uzantı, yeni bir belge bulduğunda, 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 belgeleri koleksiyonunuz için güvenlik kuralları ayarlayın.

    Bu uzantı, doğrudan istemci uygulamalarından e-posta teslimini tetiklemek için kullanılabilir. Ancak, olası kötüye kullanımı önlemek için müşterinin koleksiyona erişimini dikkatli bir şekilde kontrol etmelisiniz (kullanıcıların şirketinizin adresinden rastgele e-postalar göndermesini istemezsiniz!).

    Güvenlik kuralları uygulamadan uygulamaya değişir, 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 neyi tetiklemesine izin verilmesi gerektiğine ilişkin beklentilerinizle eşleştiğini doğrulamak için güvenlik kurallarını kullanabilirsiniz.

  4. İsteğe bağlı: Bir kullanıcı koleksiyonu oluşturun.

    Bu uzantının temel kullanımı altında, bir e-postanın alıcılarını, e-posta adreslerini mesaj to , cc ve bcc alanlarında belirterek belirtirsiniz. Alternatif olarak, Cloud Firestore'da bir kullanıcı veritabanınız varsa, kullanıcıların UID'lerini kullanarak alıcıları belirtebilirsiniz. Bunun çalışması için kullanıcı koleksiyonunuzun şu ölçütleri karşılaması gerekir:

    • Koleksiyon, kullanıcı kimliklerinde anahtarlanmalıdır. Diğer bir deyişle, koleksiyondaki her kullanıcı belgesinin belge kimliği, kullanıcının Firebase Kimlik Doğrulaması UID'si olmalıdır.
    • Her kullanıcı belgesi, kullanıcının e-posta adresini içeren bir email alanına sahip olmalıdır.
  5. İsteğe bağlı: Bir şablon koleksiyonu oluşturun.

    Gidon şablonlarını kullanarak e-postalar oluşturabilirsiniz. Bunu yapmak için şablonlarınızı içeren bir Cloud Firestore koleksiyonuna ihtiyacınız olacak.

    Ayrıntılar için Tetik E-posta uzantısıyla Gidon şablonlarını kullanma konusuna bakın.

Uzantıyı yükleyin

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

  • Firebase konsolu: Aşağıdaki düğmeyi tıklayın:

    Tetik E-posta uzantısını yükleyin

  • CLI: Şu komutu çalıştırın:

    firebase ext:install firebase/firestore-send-email --project=projectId-or-alias

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

Uzantıyı kullan

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

Örnek: Bir e-posta gönder

Basit bir mesaj göndermek için, mesaj koleksiyonunuza bir to alanı ve aşağıdaki içeriğe sahip bir message alanı içeren 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önderici ve alıcı alanları

Belgenin üst düzey alanları, e-posta gönderen ve alıcı bilgilerini sağlar. Kullanılabilir alanlar şunlardır:

  • from: Gönderenin e-posta adresi. Belgede belirtilmemişse, yapılandırılmış "Varsayılan FROM adresi" parametresini kullanır.
  • answerTo: Yanıtlanacak e-posta adresi. Belgede belirtilmemişse, yapılandırılmış "Varsayılan REPLY-TO adresi" parametresini kullanır.
  • Kime : Tek bir alıcı e-posta adresi veya birden çok alıcı e-posta adresi içeren bir dizi.
  • toUids: Alıcı UID'lerini içeren bir dizi.
  • cc: Tek bir alıcı e-posta adresi veya birden çok alıcı e-posta adresi içeren bir dizi.
  • ccUids: CC alıcı UID'lerini içeren bir dizi.
  • bcc: Tek bir alıcı e-posta adresi veya birden çok alıcı e-posta adresi içeren bir dizi.
  • bccUids: BCC alıcı UID'lerini 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ı olarak e-postalar sunar. Bu alıcı seçeneklerini kullanmak için uzantının "Kullanıcı 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 bilgilerini içerir. Bu alan genellikle yalnızca kendi sunucularınızda veya Bulut İşlevlerinde ç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 mevcut özellikler şunlardır:

  • 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 dizesi, özel içerik türü, URL, kodlanmış dize, veri URI'si ve önceden oluşturulmuş 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: