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-Mail
Daha 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, Message
Step 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'] = True
Step 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 .