python da flask-mail kullanarak eposta gönderimi
Flask-Mail kütüphanesini kullanarak python da basit bir eposta gönderme uygulaması yapalım. öncelikle
pip install Flask-Mail
ile flask-mail kurulumu yapalım… flask-mail da SMTP konfigürasyonu için kullanılabilecek parametreler aşagıdaki gibi tanımlanmış.
MAIL_SERVER : varsayılan ‘localhost’
MAIL_PORT : varsayılan 25
MAIL_USE_TLS : varsayılan False
MAIL_USE_SSL : varsayılan False
MAIL_DEBUG : varsayılan app.debug
MAIL_USERNAME : varsayılan None
MAIL_PASSWORD : varsayılan None
MAIL_DEFAULT_SENDER : varsayılan None
MAIL_MAX_EMAILS : varsayılan None
MAIL_SUPPRESS_SEND : varsayılan app.testing
MAIL_ASCII_ATTACHMENTS : varsayılan False
programda ihtiyaçımız sırasında gerekli güncellemeleri yapacağız. mail gönderimi sırasında ise
flask_mail.Message(subject='', recipients=None, body=None, html=None, sender=None, cc=None, bcc=None, attachments=None, reply_to=None, date=None, charset=None, extra_headers=None, mail_options=None, rcpt_options=None)
uygun şekilde yapılandırmak gerekecek.
subject – email subject header
recipients – list of email addresses
body – plain text message
html – HTML message
sender – email sender address, or MAIL_DEFAULT_SENDER by default
cc – CC list
bcc – BCC list
attachments – list of Attachment instances
reply_to – reply-to address
date – send date
charset – message character set
extra_headers – A dictionary of additional headers for the message
mail_options – A list of ESMTP options to be used in MAIL FROM command
rcpt_options – A list of ESMTP options to be used in RCPT commands
simdi bu bilgileri kullanarak basit kodumuzu yazalım.. gerekli kütüphaneleri import ederim
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
mail= Mail(app)
smtp konfigürasyonumuzu yapalım.. ben aylık 500 kadar bedava eposta gönderilimize izin veren mailtrap servisini için konfigürasyon yapacağım..
app.config['MAIL_SERVER']='smtp.mailtrap.io'
app.config['MAIL_PORT'] = 2525
app.config['MAIL_USERNAME'] = '81e0d22cd4b15'
app.config['MAIL_PASSWORD'] = '94355a1553f58'
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USE_SSL'] = False
mail= Mail(app)
eposta içeriğini, gönderici ve alıcıda tanımlayalım
msg = Message('Test Mesajı', sender = 'ferhatcicek@mailtrap.io', recipients = ['iletisim@ferhatcicek.com'])
msg.body = "Bu bir test mesajıdır"
mail.send(msg)
return "Eposta gönderildi."
artık kodumuz hazır durumda…
#app.py - flask-mail kullanarak eposta gönderimi
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
mail= Mail(app)
app.config['MAIL_SERVER']='smtp.mailtrap.io'
app.config['MAIL_PORT'] = 2525
app.config['MAIL_USERNAME'] = '81e0d22cd4b15b'
app.config['MAIL_PASSWORD'] = '94355a1553f58b'
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USE_SSL'] = False
mail= Mail(app)
@app.route("/")
def index():
try:
msg = Message('Test Mesajı', sender = 'ferhatcicek@mailtrap.io', recipients = ['iletisim@ferhatcicek.com'])
msg.body = "Bu bir test mesajıdır"
mail.send(msg)
return "Eposta gönderildi."
except Exception as e:
return(str(e))
if __name__ == '__main__':
app.run(debug = True)
flask run -h 0.0.0.0 -p 8080 yazarak kodumu çalışrarak tarayıcımıza http://localhost:8080 yazdığımızda epostamızın iletildiğine ait bilgilendirme mesajını alacağız… mesaj gönderme kısmını bir döngü içine alarak toplu eposta gönderimide yapabilirsiniz…