Python Kullanarak Gmail API ile Toplu Email Göndermek

Harun Tanrıverdi
2 min readAug 12, 2021

--

Toplu ve kişiye özel mail göndermek için çeşitli mail uygulamaları mevcut. Fakat bunların bazıları ücretli bazıları da sınırlı özelliklere sahip. Elinizde bir mail listesi var ve bu mail listesindeki kullanıcılara isimlerine özel tek tek gönderim yapmak istiyorsunuz (bunu bir marketing aracı olarak da kullanabiliriz). Aslında bu özellik Microsoft Word uygulamasının Posta Gönderileri özelliği ile Outlook üzerinden gönderebilirsiniz. Fakat burda da eposta eki gönderemiyoruz. Bu yüzden sürekli kullanacağım basit bir Python script yazarak göndereceğim epostaları istediğim gibi şekillendirerek gönderiyorum.

Google’ın müthiş ama pahalı servislerinden biri olan GSuite (yeni adıyla Google Workspace) kullandığım için bunu Gmail API kullanarak yaptım. SMTP protokolü kullanarak da mail göndermek gibi bir seçenek var fakat burada karşımıza güvenlik sorunları ve bazı limitler ortaya çıkıyor. Google veya diğer mail servisleri OAuth 2.0 protokolünü bize açmışken kullanmamak olmaz.

Gmail API Açmak

  1. İlk etapta kullanacağınız Google hesabı ile Google Cloud’a giriş yaparak API&Services kısmından Gmail API’ı etkinleştiriyoruz.

2. Daha sonra yetkilendirme ayarlarını yapmak için;

  • Google Cloud Console’u
  • APIs & Services > Credentials giriyoruz
  • Configure Consent Screen tıklıyoruz
  • Bu kısımda gerekli bilgileri doldurup Internal seçeneğini seçerek Create’e basıyoruz

3. Credentials kısmına tekrar gelerek Create Credentials > OAuth client ID seçiyoruz. Burdan Application Type kısmında Desktop seçiyoruz. daha sonrasında bir isim belirleyip Create diyoruz. Tekrar Credentials kısmında döndüğünüzde OAuth 2.0 Client IDs bölümünde credentials bilgilerimiz mevcut olacak. Bunu indiriyoruz ve credentials.json olarak kaydediyoruz.

Python ile Mail Göndermek

  1. İlk etapta bu API’ı kullanmamız için gerekli olan Google kütüphanelerini yüklüyoruz.
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

2. Ben burada mail listesini excel üzerine kaydettiğim için onları okumak için xlrd kütüphanesini kullandım

pip install xlrd

3. Ve işte kodumuz. Siz de eğer Excel listesi kullanıyorsanız ilk kolona mailleri ikinci kolona ise mail kullanıcılarının isimlerini yazarak isme özel gönderi yapabilirsiniz. credentials.json dosyanızın yolunu göstermeyi unutmayın.

Not: Program ilk başlattığınızda tarayıcı ekranı açılacak ve kullandığınız mail ile giriş yapıp onay vermeniz istenecek. Eğer bu scripti sunucuda kullanmak istiyorsanız kişisel bilgisayarınızda bir kez bu işlemi yaptıktan sonra projenizin konumunda token.pickle dosyası oluşacak. Bu dosya ile birlikte sunucuda çalıştırdığınız zaman sorun olmayacaktır.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response