E-Posta Otomasyonu

Python dilinde geliştirdiğim e-posta otomasyonu.

Proje kaynak kodlarına GitHub üzerindeki bu repo aracılığıyla ulaşabilirsiniz.

Açıklama

Sunduğu özellikler:

  • Kişiselleştirilmiş mail içeriği
  • Kişiselleştirilmiş mail ekleri
  • HTML / plain mail gönderebilme
  • Sertifika Otomasyonu ile entegre olarak, sertifikaları ilgili kişilere hızlı bir şekilde mail olarak gönderebilme

Örnek Kullanım

  • Her öğrenciye özel sınav notunu içeren e-posta gönderebilirsiniz.
  • Kursu tamamlayan her öğrenciye, isimlerine özel sertifika e-postalayabilirsiniz.
  • Etkinliğe katılan herkese, kişiye özel teşekkür e-postası gönderebilirsiniz.

Başlangıç

Bağımlılıklar

Proje aşağıdaki işletim sistemlerinde test edilmiştir:

  • Windows 10
  • Windows 11
  • Debian

Projenin düzgün çalışabilmesi için aşağıdaki yazılımların sisteminizde kurulu olması gerekir:

  • Python Yorumlayıcısı 3.9
  • pip
  • Docker (docker ortamında çalıştıracaksanız)

Kurulum

  1. Bu repository’yi kendi bilgisayarınıza klonlayın:
1
git clone https://github.com/seymenkonuk/mail_sender.git
  1. Projeye gidin:
1
cd mail_sender

Yapılandırma

  1. Mailde yazacak yazı için bir şablon oluşturmak için temp_messages/ dizini altına "<şablon_ismi>" adında bir dizin oluşturun.
  2. Bu dizinin altına message.conf ve message.txt adında iki dosya oluşturun.
  3. message.txt dosyasının içine mesaj olarak yazmasını istediğiniz metni yazınız.
1
2
3
4
5
6
7
8
9
Merhaba İsim Soyisim,

"EXAMPLE EVENT" etkinliğimize katılımınız için teşekkür ederiz! Aşağıda, bu etkinliğe gösterdiğiniz ilgi ve katkı için size özel olarak hazırlanmış katılım sertifikanızı bulabilirsiniz.

Gelecek etkinliklerimizde de sizi aramızda görmekten mutluluk duyarız!
<hr>
Başarılarınızın devamını dileriz.
Saygılarımızla,
EXAMPLE COMMUNITY
  1. message.txt dosyasında 2 farklı değişken ekleyebilirsiniz:
    • Mesaj Sabitleri: her etkinlikte değişen bilgiler için kullanabilirsiniz.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Merhaba İsim Soyisim,
    
    "{{#EVENT_NAME#}}" etkinliğimize katılımınız için teşekkür ederiz! Aşağıda, bu etkinliğe gösterdiğiniz ilgi ve katkı için size özel olarak hazırlanmış katılım sertifikanızı bulabilirsiniz.
    
    Gelecek etkinliklerimizde de sizi aramızda görmekten mutluluk duyarız!
    <hr>
    Başarılarınızın devamını dileriz.
    Saygılarımızla,
    {{#EVENT_ORGANIZER#}}
    
    • Kişi Değişkenleri: kişiye göre değişen veriler için kullanabilirsiniz.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Merhaba {{$NAME$}},
    
    "{{#EVENT_NAME#}}" etkinliğimize katılımınız için teşekkür ederiz! Aşağıda, bu etkinliğe gösterdiğiniz ilgi ve katkı için size özel olarak hazırlanmış katılım sertifikanızı bulabilirsiniz.
    
    Gelecek etkinliklerimizde de sizi aramızda görmekten mutluluk duyarız!
    <hr>
    Başarılarınızın devamını dileriz.
    Saygılarımızla,
    {{#EVENT_ORGANIZER#}}
    
  2. Mesaj sabitlerini, mail türünü ve mail konusunu message.conf dosyasına tanımlayınız.
1
2
3
4
5
6
7
[General]
type=html
subject=Certificate

[Constant]
EVENT_ORGANIZER=Example Community
EVENT_NAME=Example Event
  1. Kişi değişkenlerini settings/mailsend.tsv dosyasına tanımlayınız.
1
2
EMAIL	NAME	ATTACHMENTS
example	example	example
  1. ATTACHMENTS boş bırakılırsa ek yoktur, bir dosya ise ek o dosyadır, bir dizin ise ek o dizinin içindeki tüm dosyalardır.
  2. settings/settings.conf dosyasına kullanacağınız hesap bilgilerini, mesaj şablonunu, gönderilen mesajların hangi klasörde görüntüleyebileceğiniz ve herkese ortak olarak gönderilecek ekleri tanımlayınız.
1
2
3
4
5
6
7
8
[General]
account_settings=account.conf
template_message=example1

save_to_folder=true
folder_name=Example

shared_attachments=shared
  1. settings/account.conf dosyasına mail’i gönderecek hesabın bilgilerini giriniz.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[General]
email=example@recepseymenkonuk.com
password=Example Password

display_name=Example Name

smtp_host=smtp.recepseymenkonuk.com
smtp_port=587

imap_host=imap.recepseymenkonuk.com
imap_port=993
  1. Mailde gönderilecek bütün ekleri attachments/ dizinine yerleştiriniz.

Çalıştırma

Uygulama Docker üzerinden kolayca çalıştırılabilir.

  • Docker image almak için:
1
make build
  • Projeyi çalıştırmak için:
1
make run
  • Mailleri göndermeden test etmek için:
1
make test
Hugo ile oluşturuldu.
Stack teması Jimmy tarafından tasarlandı