Tetikleyici E-posta uzantısını kullanma

Tetikleyici E-posta uzantısı (firestore-send-email), bir Cloud Firestore koleksiyonundaki belgelere dayalı e-postalar gönderilir. Şu koleksiyona doküman ekleniyor: koleksiyon, belgeleri de kullanabilirsiniz. Dokümanın üst düzey alanları, e-postayı göndereni belirtir ve alıcı sayısı (to, cc ve bcc seçenekleri dahil) (her biri UID'yi destekleyen UID). İlgili içeriği oluşturmak için kullanılan dokümanın message alanı, konu satırı gibi diğer e-posta öğelerini belirtir ve e-posta gövdesinden (düz metin veya HTML) oluşur.

Bu uzantıyı tetikleyecek temel bir doküman yazma örneğini burada bulabilirsiniz:

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

İsterseniz bu uzantıyı Gidon çubuğu şablonları.

Kurulum öncesi kurulum

Uzantıyı yüklemeden önce aşağıdaki adımları tamamlayın:

  1. Giden posta hizmetinizi ayarlayın.

    Tetikleyici E-posta uzantısını yüklediğinizde SMTP sunucusunun bağlantı ve kimlik doğrulama bilgilerini içeren e-posta göndermek için kullanıyor. Bu teslimat, genellikle bir e-posta teslim hizmeti tarafından sağlanır. gibi örneğin, Sendgrid, Mailgun veya Mailchimp İşlem E-postası sizin yönettiğiniz bir sunucu da olabilir.

  2. Bir e-posta dokümanları koleksiyonu oluşturun.

    Tetikleyici E-posta uzantısı, Cloud Firestore'daki yeni dokümanları dinler . Yeni bir doküman bulduğunda, dokümanın alanlarına göre bir e-posta gönderir. İstediğiniz Cloud Firestore'u kullanabilirsiniz bu amaçla veri toplama; bu sayfadaki örneklerde bir koleksiyon email olarak adlandırıldı.

  3. E-posta dokümanları toplama işleminiz için güvenlik kuralları oluşturun.

    Bu uzantı, e-posta teslimini doğrudan müşteriden tetiklemek için kullanılabilir izin verir. Ancak web sitenize müşteri erişimini kötüye kullanım olasılığından kaçınmak için koleksiyonunuzu şirketinizin adresinden rastgele e-postalar gönderilir!).

    Güvenlik kuralları uygulamadan uygulamaya değişir, ancak her zaman e-postaların yalnızca hedeflenen alıcılara gönderildiğinden mümkün olduğunca azdır. Şablonlar size bu konuda yardımcı olabilir. veri feed'inizde doldurulduğundan emin olmak için şablonun, kullanıcıya nelere izin verileceğine ilişkin beklentilerinizi tetikleyici olur.

  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ı belirtirsiniz e-posta adreslerini to, cc ve bcc alanlarında belirterek seçeneğini tıklayın. Alternatif olarak, Cloud Firestore'u kullanıyorsanız UID'ler. Bunun için için kullanıcı koleksiyonunuzun şu ölçütleri karşılaması gerekir:

    • Koleksiyon, kullanıcı kimliklerine bağlı olmalıdır. Yani her bir dokümanın belge kimliği koleksiyondaki kullanıcı dokümanı, kullanıcının Firebase Authentication UID'si olmalıdır.
    • Her kullanıcı dokümanında kullanıcının e-posta adresini içeren bir email alanı olmalıdır girin.
  5. İsteğe bağlı: Bir şablon koleksiyonu oluşturun.

    E-postaları, Herkese açık kullanıcı adı şablonları kullanarak oluşturabilirsiniz. Bunu yapmak için kullanabilirsiniz.

    Tetikleyici E-posta uzantısıyla tutma yeri şablonlarını kullanma başlıklı makaleye göz atın. inceleyebilirsiniz.

Uzantıyı yükle

Uzantıyı yüklemek için Firebase uzantısını yükleme sayfasını ziyaret edin. Özet olarak, aşağıdakilerden birini yapın:

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

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

  • KSA: Aşağıdaki komutu çalıştırın:

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

Uzantıyı yüklediğinizde SMTP'nizi belirtmeniz istenir bağlantı bilgileri ve daha önce oluşturduğunuz Cloud Firestore koleksiyonlarını gözden geçirin.

Uzantıyı kullanma

Yükleme işleminden sonra bu uzantı koleksiyonudur. E-postalar, videonun içeriğine göre belgeleri de kullanabilirsiniz. Üst düzey alanlar e-postayı göndereni belirtir ve alıcı sayısı. message alanında, teslim edilecek e-postanın ayrıntıları yer alır. e-posta gövdesi de dahil.

Örnek: E-posta gönderme

Basit bir ileti göndermek için to ile ileti koleksiyonunuza doküman ekleyin. alanı ve aşağıdaki içeriğe sahip bir message alanı olacaktır:

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ı

E-postayı göndereni ve alıcıyı dokümanın en üst düzey alanları sağlar. ekleyebilirsiniz. Kullanılabilir alanlar şunlardır:

  • from: Gönderenin e-posta adresi. Dokümanda belirtilmezse yapılandırılmış "Varsayılan FROM adresi"ni kullanır. parametresinden sonra bir değer girin.
  • replyTo: Yanıt e-posta adresi. Dokümanda belirtilmemişse yapılandırılan "Varsayılan YANIT-KİMLİĞİ" adresini kullanır. parametresinden sonra bir değer girin.
  • to: Tek bir alıcının e-posta adresi veya birden fazla alıcı e-posta adresi içeren bir dizi.
  • toUids: Alıcı UID'lerini içeren bir dizi.
  • cc: Tek bir alıcının e-posta adresi veya birden çok alıcı e-posta adresi içeren bir dizi.
  • ccUid'ler: CC alıcısı UID'lerini içeren bir dizi.
  • bcc: Tek bir alıcının e-posta adresi veya birden çok alıcı e-posta adresi içeren bir dizi.
  • bccUids: BCC alıcısı UID'lerini içeren bir dizi.
  • headers: Ek başlık alanlarının bulunduğu nesne (örneğin, {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"}).

NOT: toUids, ccUids ve bccUids seçenekleri, e-postaların teslim edilme zamanına göre Cloud Firestore dokümanındaki e-posta adreslerine girilen kullanıcı UID'leri. Kullanılacak bu alıcı seçeneklerini kullanabilmek için bir Cloud Firestore koleksiyonu uzantının "Kullanıcı koleksiyonu" parametresinden sonra bir değer girin. Böylece uzantı, toUids, ccUids ve/veya bccUids alanlarında belirtilen her UID için email alanı.

Mesaj alanı

Belgenin message alanı, e-posta gönderin. Bu alan, genellikle yalnızca şurada çalışan güvenilir kod tarafından doldurulmalıdır: veya Cloud Functions (Güvenlik kuralları ve e-posta" bölümüne bakın).

message alanı için kullanılabilir özellikler şunlardır:

  • messageId: E-postanın ileti kimliği üstbilgisi (varsa).
  • subject: E-postanın konusu.
  • text: E-postanın şifrelenmemiş metin içeriği.
  • html: E-postanın HTML içeriği.
  • amp: E-postanın AMP4EMAIL içeriği.
  • attachments: Ekleri 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).

İleri düzey kullanım

Bu uzantının daha ileri düzey kullanımı hakkında bilgi edinin: