Python İle Gmail Api Kullanarak Mail Gönder

Merhaba arkadaşlar, bu yazımda heybooster’a
yeni ekleyeceğimiz email yollama özelliğini Python ile nasıl yaptığımızdan bahsedeceğim.
Örnek bir kod ile nasıl mail atabileceğinizi, mail template hazırlamayı ve uygulama için
gerekli kimlik bilgilerini nas…


This content originally appeared on DEV Community and was authored by Ali İlteriş Keskin

Merhaba arkadaşlar, bu yazımda heybooster'a
yeni ekleyeceğimiz email yollama özelliğini Python ile nasıl yaptığımızdan bahsedeceğim.
Örnek bir kod ile nasıl mail atabileceğinizi, mail template hazırlamayı ve uygulama için
gerekli kimlik bilgilerini nasıl alacağınızı göstereceğim. İyi okumalar dilerim :)

Gmail API İçin Kimlik Bilgilerini Oluştur

İlk olarak adresine giriyoruz ve create
credentials diyoruz. Açılan menüden OAuth client ID seçeneğini seçiyoruz. Aşağıdaki gibi
bilgilerimizi girdikten sonra create diyebiliriz.

Google Cloud Console

Sonraki adımımız ise oluşan credentials dosyasını indirmek. Dosyayı kodunuz ile aynı dizine
indirmeli ve anlaşılır bir isim (credentials.json vb.) vermelisiniz. Kimlik bilgileri ile ilgili
yapacaklarımız bu kadar. Hemen sonraki adıma geçelim.

Gerekli Kütüphanelerin Kurulması

Projenizde kullanacağınız kütüphanelerin kurulması gerekli. Bunun için aşağıdaki komutu
çalıştırmanız yeterli olacaktır.

pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

Evet şimdi gerekli kütüphaneleri de kurduğumuza göre gelelim bu işin kod kısmına.

Kodlar

from __future__ import print_function
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from email.mime.text import MIMEText
import base64


SCOPES = ['https://www.googleapis.com/auth/gmail.send',
          'https://www.googleapis.com/auth/gmail.readonly']

def create_message(sender, to, subject, message_text):
    message = MIMEText(message_text, 'html') # Sondaki html ifadesi html mesajınızı formatlamayı sağlamaktadır.
    message['to'] = to
    message['from'] = sender
    message['subject'] = subject
    raw_message = base64.urlsafe_b64encode(message.as_bytes())
    return {'raw': raw_message.decode("utf-8")}


def send_message(service, user_id, message):
    print(user_id)
    print(message)
    message = (service.users().messages().send(userId=user_id, body=message).execute())
    print('Message Id: {}'.format(message['id']))
    return message


def main():
    creds = None
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        with open('token.json', 'w') as token:
            token.write(creds.to_json())

    service = build('gmail', 'v1', credentials=creds)
    gonderici = 'gonderen@gmail.com'
    alici = 'alici@gmail.com'
    konu = 'Ayda 15.000€ Kazanmak İster misin?'
    mesaj = """
    <html>
      <head>
      </head>
      <body>
        <h1>Test mesajı</h1>
        <br>
        <p>Test mesajı</p>
      </body>
    </html>
    """
    message = create_message(gonderici, alici, konu, mesaj)
    send_message(service, 'me', message)


if __name__ == '__main__':
    main()

Yukarıdaki kodda main fonksiyonu credentials.json dosyası kullanılarak gönderici
mail adresinizde oturum açıp gerekli izinleri vermenizi ve gerekli token.json dosyasının
oluşmasını sağlamaktadır. create_message fonksiyonu ise mesajını oluşturup gönderilecek
formata getirmeyi sağlamaktadır. send_message ise tahmin ettiğiniz gibi mesajınızın
yollanmasını sağlamaktadır :)

Umarım işinize yaramıştır. Aklınıza takılan soruları herhangi bir yerden sorabilirsiniz.
İyi çalışmalar dilerim :)


This content originally appeared on DEV Community and was authored by Ali İlteriş Keskin


Print Share Comment Cite Upload Translate Updates
APA

Ali İlteriş Keskin | Sciencx (2022-01-22T16:15:01+00:00) Python İle Gmail Api Kullanarak Mail Gönder. Retrieved from https://www.scien.cx/2022/01/22/python-ile-gmail-api-kullanarak-mail-gonder/

MLA
" » Python İle Gmail Api Kullanarak Mail Gönder." Ali İlteriş Keskin | Sciencx - Saturday January 22, 2022, https://www.scien.cx/2022/01/22/python-ile-gmail-api-kullanarak-mail-gonder/
HARVARD
Ali İlteriş Keskin | Sciencx Saturday January 22, 2022 » Python İle Gmail Api Kullanarak Mail Gönder., viewed ,<https://www.scien.cx/2022/01/22/python-ile-gmail-api-kullanarak-mail-gonder/>
VANCOUVER
Ali İlteriş Keskin | Sciencx - » Python İle Gmail Api Kullanarak Mail Gönder. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/01/22/python-ile-gmail-api-kullanarak-mail-gonder/
CHICAGO
" » Python İle Gmail Api Kullanarak Mail Gönder." Ali İlteriş Keskin | Sciencx - Accessed . https://www.scien.cx/2022/01/22/python-ile-gmail-api-kullanarak-mail-gonder/
IEEE
" » Python İle Gmail Api Kullanarak Mail Gönder." Ali İlteriş Keskin | Sciencx [Online]. Available: https://www.scien.cx/2022/01/22/python-ile-gmail-api-kullanarak-mail-gonder/. [Accessed: ]
rf:citation
» Python İle Gmail Api Kullanarak Mail Gönder | Ali İlteriş Keskin | Sciencx | https://www.scien.cx/2022/01/22/python-ile-gmail-api-kullanarak-mail-gonder/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.