Flask - Posta
Web tabanlı bir uygulamanın genellikle kullanıcılara / istemcilere posta gönderme özelliğine sahip olması gerekir. Flask-Mail uzantısı, herhangi bir e-posta sunucusuyla basit bir arayüz kurmayı çok kolaylaştırır.
İlk olarak, Flask-Mail uzantısı pip yardımcı programı yardımıyla kurulmalıdır.
pip install Flask-MailDaha sonra, aşağıdaki uygulama parametrelerinin değerleri ayarlanarak Flask-Mail'in yapılandırılması gerekir.
| Sr.No | Parametreler ve Açıklama | 
|---|---|
| 1 | MAIL_SERVER E-posta sunucusunun adı / IP adresi | 
| 2 | MAIL_PORT Kullanılan sunucunun bağlantı noktası numarası | 
| 3 | MAIL_USE_TLS Taşıma Güvenliği Katmanı şifrelemesini etkinleştirin / devre dışı bırakın | 
| 4 | MAIL_USE_SSL Güvenli Yuva Katmanı şifrelemesini etkinleştirin / devre dışı bırakın | 
| 5 | MAIL_DEBUG Hata ayıklama desteği. Varsayılan, Flask uygulamasının hata ayıklama durumudur | 
| 6 | MAIL_USERNAME Gönderenin kullanıcı adı | 
| 7 | MAIL_PASSWORD gönderenin şifresi | 
| 8 | MAIL_DEFAULT_SENDER varsayılan göndereni ayarlar | 
| 9 | MAIL_MAX_EMAILS Gönderilecek maksimum postaları ayarlar | 
| 10 | MAIL_SUPPRESS_SEND App.testing true olarak ayarlanmışsa gönderme pasifleştirilir | 
| 11 | MAIL_ASCII_ATTACHMENTS True olarak ayarlanırsa, ekli dosya adları ASCII'ye dönüştürülür | 
Flask-mail modülü aşağıdaki önemli sınıfların tanımlarını içerir.
Posta sınıfı
E-posta mesajlaşma gereksinimlerini yönetir. Sınıf yapıcısı aşağıdaki formu alır -
flask-mail.Mail(app = None)Oluşturucu, Flask uygulama nesnesini bir parametre olarak alır.
Mail sınıfının yöntemleri
| Sr.No | Yöntemler ve Açıklama | 
|---|---|
| 1 | send() Message sınıfı nesnesinin içeriğini gönderir | 
| 2 | connect() Posta barındırıcısı ile bağlantıyı açar | 
| 3 | send_message() Mesaj nesnesi gönderir | 
Mesaj sınıfı
Bir e-posta mesajını kapsar. Mesaj sınıfı yapıcısının birkaç parametresi vardır -
flask-mail.Message(subject, recipients, body, html, sender, cc, bcc, 
   reply-to, date, charset, extra_headers, mail_options, rcpt_options)Mesaj sınıfı yöntemleri
attach()- mesaja bir ek ekler. Bu yöntem aşağıdaki parametreleri alır -
- filename - eklenecek dosyanın adı 
- content_type - MIME türü dosya 
- data - ham dosya verileri 
- disposition - varsa içerik düzeni. 
add_recipient() - mesaja başka bir alıcı ekler
Aşağıdaki örnekte, Google'ın gmail hizmetinin SMTP sunucusu, Flask-Mail yapılandırması için MAIL_SERVER olarak kullanılmıştır.
Step 1 - Koddaki flask-mail modülünden Mail ve Mesaj sınıfını içe aktarın.
from flask_mail import Mail, MessageStep 2 - Daha sonra Flask-Mail aşağıdaki ayarlara göre yapılandırılır.
app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = '[email protected]'
app.config['MAIL_PASSWORD'] = '*****'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = TrueStep 3 - Mail sınıfının bir örneğini oluşturun.
mail = Mail(app)Step 4 - URL kuralı ile eşlenen bir Python işlevinde bir Mesaj nesnesi oluşturun (‘/’).
@app.route("/")
def index():
   msg = Message('Hello', sender = '[email protected]', recipients = ['[email protected]'])
   msg.body = "This is the email body"
   mail.send(msg)
   return "Sent"Step 5- Kodun tamamı aşağıda verilmiştir. Aşağıdaki komut dosyasını Python Shell'de çalıştırın ve ziyaret edinhttp://localhost:5000/.
from flask import Flask
from flask_mail import Mail, Message
app =Flask(__name__)
mail=Mail(app)
app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = '[email protected]'
app.config['MAIL_PASSWORD'] = '*****'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
mail = Mail(app)
@app.route("/")
def index():
   msg = Message('Hello', sender = '[email protected]', recipients = ['[email protected]'])
   msg.body = "Hello Flask message sent from Flask-Mail"
   mail.send(msg)
   return "Sent"
if __name__ == '__main__':
   app.run(debug = True)Gmail hizmetindeki yerleşik güvensizlik özelliklerinin bu giriş girişimini engelleyebileceğini unutmayın. Güvenlik seviyesini düşürmeniz gerekebilir. Güvenliği azaltmak için lütfen Gmail hesabınıza giriş yapın ve bu bağlantıyı ziyaret edin .
