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:
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.
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.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.
İsteğe bağlı: Bir kullanıcı koleksiyonu ayarlayın.
Bu uzantının temel kullanımı altında, mesaj belgesinin
to
,cc
vebcc
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.
İ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:
Firebase Konsolu: Aşağıdaki düğmeyi tıklayın:
CLI: 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 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:
- Tetikleyici e -posta uzantısına sahip gidon şablonlarını kullanın
- Tetikleyici e -posta uzantısıyla teslimat durumunu yönetin