GNU/Linux >> Belajar Linux >  >> Ubuntu

Instal Mailtrain v1.24 di Server Ubuntu 20.04 Tanpa Docker

Tutorial ini akan menunjukkan cara menginstal Mailtrain di Ubuntu 20.04 tanpa Docker. Mailtrain adalah aplikasi buletin self-hosted sumber terbuka, alternatif untuk penyedia layanan email komersial seperti Mailchimp. Anda dapat menggunakan Mailtrain untuk mengirim buletin ke pelanggan email Anda melalui server email Anda sendiri atau dengan menggunakan layanan relai SMTP (Mailjet, SendGrid, AmazonSES, Mailgun, dll).

Perbarui :Mailtrain V2 dirilis. Pengguna baru harus menggunakan V2, bukan V1.24 :Cara Menginstal Mailtrain v2 di Server Ubuntu 20.04

Mailtrain dirilis di bawah persyaratan lisensi GPL v3.0, dibangun di atas Node.js dan MySQL/MariaDB. Versi terbaru adalah v1.24.1, dirilis pada 28 September 2018. Fitur Mailtrain adalah sebagai berikut:

  • Ini memungkinkan Anda mengelola milis besar dengan mudah (seperti 1 juta pelanggan).
  • Anda dapat menambahkan pelanggan secara manual, melalui API, atau mengimpor dari file CSV.
  • Mendukung bidang khusus (bidang teks, angka, tarik-turun atau kotak centang), tag gabungan, dan formulir khusus.
  • Segmentasi daftar.
  • Kampanye RSS:buat buletin otomatis dari umpan RSS dan kirimkan ke pelanggan.
  • Pelanggan dapat mengunggah kunci publik GPG mereka dan Mailtrain akan mengenkripsi buletin untuk mereka.
  • Memungkinkan Anda memeriksa statistik klik individual untuk setiap tautan.
  • Editor template email dan editor kode HTML tingkat lanjut.
  • Otomasi:kirim email tertentu saat pengguna mengaktifkan pemicu yang telah Anda tentukan sebelumnya.
  • Anda dapat membuat daftar email terbuka (memungkinkan langganan publik) dan daftar email tertutup (pelanggan ditambahkan ke daftar oleh admin).
  • Ini memungkinkan Anda untuk melanjutkan kampanye email lama (mengirim kampanye lama ke pelanggan baru).

Langkah 1:Pilih Penyedia Hosting yang Tepat

Hosting mandiri dapat menghemat banyak uang. Mailtrain adalah perangkat lunak sumber terbuka dan gratis. Anda hanya perlu membayar $26/bulan untuk VPS (virtual private server), yang dapat menjalankan server email berfitur lengkap dan platform pemasaran email Mailtrain. Itu dapat dengan mudah menangani jutaan pelanggan. Jadi total biaya Anda selalu $26/bulan tidak peduli berapa banyak pelanggan yang Anda miliki . Jika Anda memiliki jutaan pelanggan di MailChimp, biayanya akan menjadi ribuan dolar per bulan.

Bukan tugas yang mudah untuk menemukan penyedia VPS (Virtual Private Server) yang cocok untuk hosting email dan pemasaran email. Banyak perusahaan hosting seperti DigitalOcean memblokir port 25. DigitalOcean tidak akan membuka blokir port 25, jadi Anda perlu menyiapkan relai SMTP untuk mem-bypass pemblokiran, yang dapat dikenakan biaya tambahan. Jika Anda menggunakan Vultr VPS, maka port 25 diblokir secara default. Mereka dapat membuka blokirnya jika Anda membuka tiket dukungan, tetapi mereka dapat memblokirnya lagi kapan saja jika mereka memutuskan aktivitas pengiriman email Anda tidak diizinkan. Vultr sebenarnya dapat memblokir ulang jika Anda menggunakan server mereka untuk mengirim buletin.

Masalah lain adalah bahwa penyedia hosting besar terkenal seperti DigitalOcean atau Vultr disalahgunakan oleh spammer. Seringkali alamat IP server ada di beberapa daftar hitam. Vultr memasukkan seluruh rentang IP ke daftar hitam.

ScalaHosting adalah pilihan yang sangat baik untuk menjalankan server email karena

  • Mereka tidak memblokir port 25.
  • Alamat IP tidak ada dalam daftar hitam email mana pun. (Setidaknya ini benar dalam kasus saya. Saya memilih pusat data Dallas.) Anda pasti tidak ingin terdaftar di daftar hitam IP Microsoft Outlook yang ditakuti atau daftar hitam SpamRats. Beberapa daftar hitam memblokir seluruh rentang IP dan Anda tidak memiliki cara untuk menghapus alamat IP Anda dari daftar hitam semacam ini.
  • Anda dapat mengedit data PTR untuk meningkatkan kemampuan pengiriman email.
  • Mereka mengizinkan Anda mengirim buletin ke pelanggan email Anda dengan tidak batas per jam atau batas harian, apa pun. Perhatikan bahwa Anda tidak diizinkan mengirim spam, juga dikenal sebagai tidak diminta email massal. Jika penerima tidak secara eksplisit memberi Anda izin untuk mengirim email, dan Anda mengirim email kepada mereka, itu adalah email yang tidak diminta.

Saya sarankan mengikuti tutorial yang ditautkan di bawah ini untuk mengatur server VPS Linux dengan benar di ScalaHosting. Gunakan kode kupon linuxbabe2021 di ScalaHosting halaman pembayaran untuk menghemat $100 jika Anda memilih untuk membayar 12 bulan di muka.

  • Cara Membuat Server VPS Linux di ScalaHosting

Anda juga memerlukan nama domain. Saya mendaftarkan nama domain saya dari NameCheap karena harganya rendah dan mereka memberi Anda perlindungan privasi whois gratis seumur hidup.

Jika Anda belum memiliki server email sendiri, sebaiknya gunakan program iRedMail gratis untuk menyiapkan server email Anda sendiri dengan cepat sebelum menginstal Mailtrain, jadi Anda tidak perlu mengeluarkan uang untuk layanan relai SMTP komersial.

Langkah 2:Instal Server Database MariaDB

Data pelanggan Anda akan disimpan dalam database. Mailtrain mendukung MySQL dan MariaDB. MariaDB adalah pengganti drop-in untuk MySQL. Ini dikembangkan oleh mantan anggota tim MySQL yang khawatir bahwa Oracle mungkin mengubah MySQL menjadi produk sumber tertutup. Jadi mari kita instal server database MariaDB.

Masukkan perintah berikut untuk menginstalnya di Ubuntu 20.04.

sudo apt install mariadb-server mariadb-client

Setelah terinstal, server MariaDB akan otomatis menatap. Gunakan systemctl untuk memeriksa statusnya.

systemctl status mariadb

Contoh keluaran:

● mariadb.service - MariaDB 10.3.22 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: e>
     Active: active (running) since Mon 2020-04-20 15:31:14 HKT; 52s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 1826628 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 30 (limit: 9451)
     Memory: 73.0M
     CGroup: /system.slice/mariadb.service
             └─1826628 /usr/sbin/mysqld

Jika tidak berjalan, mulai dengan perintah ini:

sudo systemctl start mariadb

Untuk mengaktifkan MariaDB agar secara otomatis memulai pada waktu boot sistem, jalankan

sudo systemctl enable mariadb

Sekarang jalankan skrip keamanan pasca instalasi.

sudo mysql_secure_installation

Saat diminta untuk memasukkan kata sandi root MariaDB, tekan tombol Enter karena kata sandi root belum disetel. Kemudian masukkan y untuk mengatur kata sandi root untuk server MariaDB.

Selanjutnya, Anda dapat menekan Enter untuk menjawab semua pertanyaan yang tersisa, yang akan menghapus pengguna anonim, menonaktifkan login root jarak jauh, dan menghapus database pengujian. Langkah ini merupakan persyaratan dasar untuk keamanan database MariaDB. (Perhatikan bahwa huruf Y dikapitalisasi, yang berarti itu adalah jawaban default.)

Periksa informasi versi server MariaDB.

mariadb --version

Keluaran:

mariadb  Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Langkah 3:Buat Database dan Pengguna untuk Mailtrain

Sekarang kita perlu masuk ke konsol MariaDB dan membuat database dan pengguna untuk Mailtrain. Secara default, paket MaraiDB di Ubuntu menggunakan unix_socket untuk mengautentikasi login pengguna, yang pada dasarnya berarti Anda dapat menggunakan nama pengguna dan kata sandi OS untuk masuk ke konsol MariaDB. Jadi Anda dapat menjalankan perintah berikut untuk login tanpa memberikan kata sandi root MariaDB.

sudo mariadb -u root

Buat database untuk Mailtrain menggunakan perintah berikut. Saya menamakannya mailtrain , tetapi Anda dapat menggunakan nama apa pun yang Anda suka. (Jangan tinggalkan titik koma.)

create database mailtrain;

Kemudian masukkan perintah di bawah ini untuk membuat pengguna database untuk Mailtrain dan memberikan semua hak istimewa database mailtrain kepada pengguna. Ganti mtuser dan your-password dengan nama pengguna dan kata sandi pilihan Anda.

grant all privileges on mailtrain.* to mtuser@localhost identified by 'mtuser_password';

Selanjutnya, buat pengguna dengan akses hanya baca ke database mailtrain. Saya menamai pengguna ini mt_readonly .

grant select on mailtrain.* TO mt_readonly@localhost identified by 'mt_readonly_password';

Bersihkan tabel hak istimewa agar perubahan diterapkan, lalu keluar dari konsol MariaDB.

flush privileges;

exit;

Langkah 4:Instal Node.js

Mailtrain dibangun di atas Node.js, yang merupakan lingkungan run-time JavaScript yang menerjemahkan kode JavaScript yang dapat dibaca manusia menjadi kode mesin. Jadi kita perlu menginstal Node.js di Ubuntu 20.04 untuk menjalankan Mailtrain. Mailtrain membutuhkan Node.js 7+. Versi terbaru dari Node.js adalah v14. Namun, saya tidak menyarankan menggunakan versi terbaru, karena tidak kompatibel dengan Mailtrain v1.24. Untuk kompatibilitas terbaik, saya sarankan untuk menginstal Node.js 8 dari Snap Store.

Jika Anda telah menginstal Node.js dari repositori APT resmi, Anda harus menghapusnya, karena akan mengganggu versi Snap dari Node.js.

sudo apt remove nodejs

Selanjutnya, instal daemon snap.

sudo apt install snapd

Ada beberapa versi Node.js di Snap Store, yang dapat dilihat dengan:

snap info node

Keluaran:

channels:
  latest/stable:    –                                                     
  latest/candidate: –                                                     
  latest/beta:      –                                                     
  latest/edge:      15.0.0-nightly2020042524a4e615 2020-04-25 (2668) 30MB classic
  14/stable:        14.0.0                         2020-04-23 (2647) 30MB classic
  14/candidate:     ↑                                                     
  14/beta:          ↑                                                     
  14/edge:          ↑                                                     
  13/stable:        13.13.0                        2020-04-14 (2635) 29MB classic
  13/candidate:     ↑                                                     
  13/beta:          ↑                                                     
  13/edge:          ↑                                                     
  12/stable:        12.16.2                        2020-04-23 (2644) 21MB classic
  12/candidate:     ↑                                                     
  12/beta:          ↑                                                     
  12/edge:          ↑                                                     
  11/stable:        11.15.0                        2019-06-26 (2336) 19MB classic
  11/candidate:     ↑                                                     
  11/beta:          ↑                                                     
  11/edge:          ↑                                                     
  10/stable:        10.20.1                        2020-04-23 (2638) 20MB classic
  10/candidate:     ↑                                                     
  10/beta:          ↑                                                     
  10/edge:          ↑                                                     
  9/stable:         9.11.2                         2018-12-14 (1407) 17MB classic
  9/candidate:      ↑                                                     
  9/beta:           ↑                                                     
  9/edge:           ↑                                                     
  8/stable:         8.16.0                         2019-06-24 (2310) 16MB classic
  8/candidate:      ↑                                                     
  8/beta:           ↑                                                     
  8/edge:           ↑                                                     
  6/stable:         6.17.1                         2019-06-24 (2311) 13MB classic
  6/candidate:      ↑                                                     
  6/beta:           ↑                                                     
  6/edge:           ↑                                                                    

Kami dapat menginstal Node.js dari saluran 8/stable.

sudo snap install node --classic --channel=8/stable

Untuk memeriksa versi Node.js dan npm Anda, jalankan

node -v

npm -v

Keluaran:

Catatan :Jika ini adalah pertama kalinya Anda menginstal paket Snap di server, Anda harus logout dan login kembali, untuk menggunakan Ruby versi snap.

Untuk mengkompilasi dan menginstal add-on asli dari npm, Anda juga perlu menginstal alat bantu:

sudo apt install -y build-essential

Langkah 5:Jalankan Mailtrain

Pergi ke /var/www/ dan ambil file Mailtrain dari Github.

cd /var/www/

sudo git clone https://github.com/Mailtrain-org/mailtrain.git

Impor data SQL awal ke database kereta surat dengan menggunakan perintah berikut. Anda harus memasukkan kata sandi mtuser .

mariadb -u mtuser -p mailtrain < /var/www/mailtrain/setup/sql/mailtrain.sql

Buat file konfigurasi production.toml.

sudo nano /var/www/mailtrain/config/production.toml

Dalam file ini, Anda dapat menambahkan konfigurasi yang menggantikan konfigurasi default di /var/www/mailtrain/config/default.toml mengajukan. Kita hanya perlu menambahkan konfigurasi berikut.

user="mailtrain"
group="mailtrain"
[log]
level="error"
[www]
secret="Replace this with some random characters"
[mysql]
user="mtuser"
password="mtuser_password"
[queue]
processes=5

Simpan dan tutup file. Kemudian buat mailtrain pengguna dan grup untuk menjalankan daemon mailtrain. Perhatikan bahwa kami tidak perlu membuat sandi untuk pengguna ini, jadi kami membuat pengguna sistem, bukan pengguna biasa.

sudo adduser --system --group mailtrain

Buat file konfigurasi untuk pekerja laporan.

sudo nano /var/www/mailtrain/workers/reports/config/production.toml

Tambahkan konfigurasi berikut. Pekerja laporan ini akan memiliki akses hanya baca ke database mailtrain.

[log]
level="error"
[mysql]
user="mt_readonly"
password="mt_readonly_password"

Simpan dan tutup file. Kemudian ubah izin /var/www/mailtrain/ .

sudo chown mailtrain:mailtrain /var/www/mailtrain/ -R

sudo chmod o-rwx /var/www/mailtrain/config/

Instal Python2.7 dan buat tautan simbolis.

sudo apt install python2.7

sudo ln -s /usr/bin/python2.7 /usr/bin/python

Dan instal paket simpul yang diperlukan.

cd /var/www/mailtrain

sudo -u mailtrain npm config set scripts-prepend-node-path true

sudo -u mailtrain npm install --no-progress --production --unsafe-perm=true

Salin file unit layanan systemd Mailtrain ke /etc/systemd/system/ direktori.

sudo cp /var/www/mailtrain/setup/mailtrain.service /etc/systemd/system/

Buka file ini.

sudo nano /etc/systemd/system/mailtrain.service

Ubah /opt/mailtrain ke /var/www/mailtrain . Dan ubah /usr/bin/node ke /snap/bin/node karena kami menggunakan Node.js versi Snap.

Anda mungkin juga ingin mengomentari baris berikut. Karena, dengan mengaktifkan baris berikut, jika MySQL/MariaDB dimulai ulang, maka mailtrain.service juga akan restart, dan jika server MySQL/MariaDB sedang diupgrade, maka mailtrain.service akan berhenti. Saya pikir tidak perlu memerlukan mysql.service .

Requires=mysql.service

Simpan dan tutup file ini. Kemudian mulai mailtrain.service .

sudo systemctl start mailtrain.service

Periksa statusnya. Pastikan itu berjalan.

systemctl status mailtrain.service

Keluaran:

● mailtrain.service - Mailtrain server
     Loaded: loaded (/etc/systemd/system/mailtrain.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-04-26 10:26:37 HKT; 11s ago
   Main PID: 3058360 (mailtrain)
      Tasks: 20 (limit: 9451)
     Memory: 228.6M
     CGroup: /system.slice/mailtrain.service
             ├─3058360 mailtrain
             └─3058396 /snap/node/2310/bin/node /var/www/mailtrain/services/sender.js

Aktifkan mulai otomatis pada waktu boot sistem.

sudo systemctl enable mailtrain.service

Sekarang setelah Mailtrain berjalan, Anda dapat mengakses antarmuka web Mailtrain melalui port 3000.

your-server-ip:3000

Langkah 6:Siapkan Proksi Terbalik dan Aktifkan HTTPS

Sebelum menggunakan antarmuka web Mailtrain, letakkan di belakang Nginx lalu aktifkan HTTPS. Instal server web Nginx di Ubuntu 20.04 dengan:

sudo apt install nginx

Sekarang Anda dapat menyalin contoh mailtrain-nginx.conf file ke /etc/nginx/conf.d/ direktori.

sudo cp /var/www/mailtrain/setup/mailtrain-nginx.conf /etc/nginx/conf.d/

Buka file ini.

sudo nano /etc/nginx/conf.d/mailtrain-nginx.conf

Temukan baris berikut.

server_name mailtrain.org www.mailtrain.org;

Ubah nilai server_name parameter ke nama domain Anda sendiri seperti newsletter.your-domain.com . Jangan lupa untuk membuat catatan DNS A untuk sub-domain ini.

server_name newsletter.linuxbabe.com;

Simpan dan tutup file. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Anda sekarang seharusnya dapat mengakses antarmuka web Mailtrain melalui sub-domain Anda:newsletter.your-domain.com .

Sekarang edit /var/www/mailtrain/config/production.toml berkas.

sudo nano /var/www/mailtrain/config/production.toml

Dalam [www] , tambahkan dua baris berikut untuk menunjukkan bahwa mailtrain berada di belakang proxy Nginx dan membuatnya hanya mendengarkan di alamat host lokal.

host="127.0.0.1"
proxy=true

Simpan dan tutup file. Kemudian mulai ulang Mailtrain agar perubahan diterapkan.

sudo systemctl restart mailtrain

Langkah 7:Aktifkan HTTPS Dengan Let's Encrypt

Instal klien Let's Encrypt (certbot) di server Ubuntu 20.04 Anda.

sudo apt install certbot python3-certbot-nginx

Kemudian Anda dapat menggunakan plugin Nginx untuk mendapatkan dan menginstal sertifikat TLS secara otomatis dengan menjalankan perintah berikut.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d newsletter.your-domain.com

Sekarang Anda dapat mengakses antarmuka web Mailtrain melalui nama domain dan koneksi HTTPS yang aman.

htop perintah memberitahu saya bahwa server saya menggunakan sekitar 500MB RAM. Jika saya menjalankan Mailtrain dengan Docker, sekitar 900MB.

Masuk dengan nama pengguna admin dan sandi test . Kemudian ubah alamat email dan kata sandi akun Anda. Buka settings halaman untuk mengubah konfigurasi default. Anda harus mengubah alamat layanan dari http://localhost:3000/ ke subdomain Anda (https://newsletter.your-domain.com ).

Catatan:Akun admin adalah sasaran empuk para peretas. Untuk keamanan terbaik, Anda disarankan untuk mengubah nama pengguna dari admin untuk sesuatu yang lain. Antarmuka web Mailtrain tidak menyediakan opsi seperti itu, tetapi Anda dapat mengubah nama pengguna di database MariaDB menggunakan perintah SQL.

Di Mailer Settings , Anda dapat menggunakan SMTP jika Anda memiliki server email sendiri atau menggunakan Amazon SES. Sebenarnya, Anda juga dapat menggunakan layanan relai SMTP lainnya di SMTP tab. Pada tangkapan layar di bawah, saya menggunakan server email saya sendiri. Email akan dikirimkan pada port 587 dengan enkripsi STARTTLS.

Jika Mailtrain diinstal pada server email Anda, maka Anda harus menggunakan pengaturan SMTP berikut. Nama host harus 127.0.0.1 dan port harus 25. Tidak perlu mengaktifkan enkripsi atau autentikasi saat berbicara dengan localhost.

Simpan pengaturan Anda. Kemudian Anda dapat membuat daftar untuk menguji fungsionalitas Mailtrain.

Cara Mengaktifkan Redis Cache

Anda dapat menginstal server Redis untuk cache sesi. Ini akan memungkinkan Mailtrain menjalankan 5 proses alih-alih proses tunggal default, yang akan mempercepat pengiriman email jika Anda memiliki banyak pelanggan email (Perhatikan bahwa ini akan meningkatkan penggunaan memori sekitar 250MB).

sudo apt install redis

Setelah diinstal, Redis harus dimulai secara otomatis. Anda dapat memeriksa statusnya dengan:

systemctl status redis

Contoh keluaran:

● redis-server.service - Advanced key-value store
     Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-04-26 11:02:03 HKT; 4min 23s ago
       Docs: http://redis.io/documentation,
             man:redis-server(1)
   Main PID: 3059455 (redis-server)
      Tasks: 4 (limit: 9451)
     Memory: 2.3M
     CGroup: /system.slice/redis-server.service
             └─3059455 /usr/bin/redis-server 127.0.0.1:6379

Jika tidak berjalan, Anda dapat memulainya dengan:

sudo systemctl start redis

Aktifkan mulai otomatis saat boot:

sudo systemctl enable redis

Selanjutnya, edit file konfigurasi Mailtrain.

sudo nano /var/www/mailtrain/config/production.toml

Tambahkan dua baris berikut di akhir file untuk mengaktifkan Redis.

[redis]
enabled=true

Simpan dan tutup file. Kemudian mulai ulang Mailtrain.

sudo systemctl restart mailtrain

Cara Menangani Pesan Bounce di Mailtrain

Cepat atau lambat, daftar email Anda akan berisi alamat yang tidak dapat Anda kirimi email. Misalnya, ketika pelanggan yang menggunakan alamat email perusahaan keluar dari perusahaan, alamat email tersebut akan dihapus. Jadi server email Anda akan menerima pesan pentalan yang mengatakan bahwa email tidak dapat dikirim.

Jika Anda menggunakan layanan relai SMTP untuk mengirim email, mereka akan menangani pesan pentalan untuk Anda. Jika Anda menggunakan server email Anda sendiri untuk mengirim email, maka Anda perlu menangani pesan pentalan di Mailtrain. Mailtrain menawarkan dua cara untuk menangani pesan yang terpental.

  • melalui VERP
  • melalui log Postfix

Saya pribadi menggunakan metode VERP, karena banyak digunakan di komunitas email dan juga karena metode kedua menyebabkan penggunaan CPU yang tinggi di server saya.

Penanganan Pantulan VERP

Dengan VERP (jalur pengembalian amplop variabel), pengelola daftar email Anda menggunakan alamat amplop unik untuk setiap pelanggan. Untuk mengaktifkan VERP, edit production.toml berkas.

sudo nano /var/www/mailtrain/config/production.toml

Jika host Mailtrain Anda tidak menjalankan server SMTP, tambahkan teks berikut.

[verp]
enabled=true
port=25
disablesenderheader=true

Jika server Mailtrain Anda menjalankan server SMTP seperti Postfix, tambahkan teks berikut. Server penanganan pentalan akan mendengarkan 127.0.0.1:2525 .

[verp] 
enabled=true 
port=2525 
host="127.0.0.1"
disablesenderheader=true

Simpan dan tutup file. Kemudian mulai ulang Mailtrain agar perubahan diterapkan.

sudo systemctl restart mailtrain

Di antarmuka web Mailtrain, buka Settings -> VERP Bounce Handlding . Centang Use VERP to catch bounces . Simpan setelan Anda.

Selanjutnya, Anda perlu membuat data MX untuk nama host server (bounces.your-domain.com ), lalu tambahkan A record untuk nama host ini, yang mengarah ke host Mailtrain Anda, sehingga pesan pentalan dapat dikirim ke host Mailtrain Anda. Setiap pelanggan dalam daftar Anda akan memiliki alamat amplop unik seperti [email protected] .

Perhatikan bahwa jika Anda menerapkan data DMARC untuk nama domain Anda, maka penyelarasan SPF harus disetel ke mode santai. Jika disetel ke mode ketat, buletin Anda dapat gagal dalam pemeriksaan DMARC.

Jika server penanganan bouncing Mailtrain mendengarkan pada port 2525 dari 127.0.0.1 dan server SMTP Postfix mendengarkan pada port 25 dari alamat IP publik, maka Anda perlu mengatur peta transport sehingga Postfix dapat menyampaikan pesan bouncing ke Mailtrain. Buat file peta transportasi.

sudo nano /etc/postfix/transport

Tambahkan baris berikut ke file ini. Ini memberitahu Postfix untuk menyampaikan email dengan alamat seperti [email protected] ke server penanganan bouncing Mailtrain.

bounces.your-domain.com  smtp:[127.0.0.1]:2525

Simpan dan tutup file. Kemudian buat file indeks.

sudo postmap /etc/postfix/transport

Edit file konfigurasi utama Postfix.

sudo nano /etc/postfix/main.cf

Tambahkan baris berikut ke file.

transport_maps = hash:/etc/postfix/transport

Catatan:Jika Anda menggunakan iRedMail untuk menyiapkan server email Anda, maka transport_maps parameter memiliki beberapa nilai lain. Anda harus menambahkan nilai di akhir seperti di bawah ini.

transport_maps =
     proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf
     proxy:mysql:/etc/postfix/mysql/transport_maps_maillist.cf
     proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf
     hash:/etc/postfix/transport

Simpan dan tutup file. Kemudian restart Postfix agar perubahan diterapkan.

sudo systemctl restart postfix

Menangani Pesan Terpental melalui Log Postfix

Ini mengasumsikan bahwa Mailtrain diinstal pada server email Anda.

Mailtrain dapat mendeteksi pesan yang terpental dari log surat Postfix dengan menemukan baris yang berisi status=bounced . Pertama, Anda perlu mengaktifkan server pembacaan log Postfix. Edit production.toml berkas.

sudo nano /var/www/mailtrain/config/production.toml

Tambahkan teks berikut.

[postfixbounce]
enabled=true

Simpan dan tutup file. Kemudian mulai ulang Mailtrain agar perubahan diterapkan.

sudo systemctl restart mailtrain

Sekarang server pembacaan log Postfix mendengarkan pada 127.0.0.1:5699. Untuk membiarkannya membaca log Postfix, jalankan perintah berikut.

tail -F /var/log/mail.log | nc localhost 5699 -

Untuk membuatnya berjalan di latar belakang, Anda dapat membuat unit layanan systemd.

sudo nano /etc/systemd/system/bouncetail.service

Tambahkan teks berikut.

[Unit]
Description=Postfix bounce notifier
After=mailtrain.service

[Service]
ExecStart=/bin/sh -c '/usr/bin/tail -F /var/log/mail.log | nc localhost 5699 -'
Type=simple
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Simpan dan tutup file. Kemudian mulai layanan ini dan aktifkan mulai otomatis saat boot.

sudo systemctl start bouncetail

sudo systemctl enable bouncetail

Pastikan untuk memulai ulang layanan bouncetail setelah Anda memulai ulang layanan mailtrain. Saya menemukan layanan bouncetail menyebabkan penggunaan CPU yang tinggi di server saya, jadi saya tidak menggunakan metode ini.

Perbarui

Setelah menggunakan Mailtrain di server saya sendiri selama beberapa waktu, saya menemukan bahwa itu adalah alasan lain yang menyebabkan email terpental. Berikut ini adalah pantulan lembut.

  • Kotak surat penerima penuh.
  • Alamat IP Anda ada dalam daftar hitam.
  • Server email penerima sedang tidak aktif atau offline.

Ada juga hard bounce, yaitu alamat email penerima tidak ada. Secara default, Mailtrain berhenti berlangganan alamat email jika satu bouncing terdeteksi, yang bagus untuk hard bouncing, tetapi ada baiknya untuk mengizinkan beberapa bouncing lunak sebelum Anda berhenti berlangganan alamat email yang buruk. Anda dapat meminta server email penerima untuk menghapus alamat IP Anda dari daftar hitam dan kemudian berlangganan kembali alamat email terkait.

Mengunggah Gambar di Mailtrain

Untuk mengunggah gambar di Mailtrain, Anda perlu menginstal imagemagick kemasan. Tanpa itu, Mailtrain mungkin menimbulkan kesalahan saat Anda mengunggah gambar.

sudo apt install imagemagick

Cara Memasukkan Formulir Pendaftaran di Situs Web Anda

Pertama, Anda perlu mengaktifkan berbagi sumber daya lintas asal. Edit production.toml berkas.

sudo nano /var/www/mailtrain/config/production.toml

Tambahkan baris berikut dalam file untuk memasukkan situs web Anda ke daftar putih.

[cors]
# Allow subscription widgets to be embedded
origins=['https://www.example.com']

Simpan dan tutup file. Kemudian mulai ulang Mailtrain agar perubahan diterapkan.

sudo systemctl restart mailtrain

Selanjutnya, tambahkan kode berikut di situs web Anda untuk menampilkan formulir pendaftaran. Ganti teks berwarna merah dengan nama domain Mailtrain dan ID daftar Anda sendiri.

<div data-mailtrain-subscription-widget data-url="https://newsletter.example.com/subscription/8ljDT9KMGr/widget">
     <a href="https://newsletter.example.com/subscription/8ljDT9KMGr">Subscribe to our list</a>
</div>
<script src="https://newsletter.example.com/subscription/widget.js"></script>

Kemudian tambahkan aturan CSS khusus untuk membuatnya lebih menarik secara visual.

Cara Membuat Pengguna Tambahan di Mailtrain

Mailtrain v2 akan memungkinkan admin untuk membuat banyak pengguna dengan izin pengguna yang terperinci dan berbagi yang fleksibel. Tetapi dengan versi v.1.24.1 saat ini, Anda hanya dapat membuat pengguna melalui database. Masuk ke konsol MySQL/MariaDB.

sudo mysql -u root

Gunakan mailtrain basis data.

USE mailtrain;

Kemudian buat entri pengguna dengan perintah SQL berikut.

INSERT INTO `users` (`username`, `password`, `email`, `access_token`, `reset_token`, `reset_expire`, `created`) VALUES ('your-username',PASSWORD("your-password"),'[email protected]',NULL,NULL,NULL,NOW());

Keluar dari server basis data.

EXIT;

Saya menemukan bahwa pengguna yang dibuat dengan cara ini tidak dapat masuk ke antarmuka web Mailtrain untuk pertama kalinya. Pengguna harus menggunakan tautan "lupa kata sandi" di halaman login untuk mengatur ulang kata sandinya, maka login akan berfungsi. Perhatikan juga bahwa semua pengguna memiliki izin administratif di antarmuka web Mailtrain.

Cara Mengimpor Daftar Email Dari MailChimp

Pertama, Anda harus pergi ke Audience tab di dasbor MailChimp Anda. Klik tombol View Contacts tombol untuk menampilkan semua pelanggan. Kemudian klik Export Audience tombol untuk mengekspor daftar Anda sebagai file CSV.

Lalu pergi ke dasbor Mailtrain dan pilih daftar email Anda. Pilih List Actions tombol tarik-turun dan klik Import Subscribers .

Di halaman berikutnya, Anda perlu mengunggah file CSV yang diunduh dari MailChimp.

Kemudian Anda harus mencocokkan bidang di MailChimp dengan bidang di daftar email Mailtrain Anda. Jika beberapa bidang di MailChimp tidak ada di daftar email Mailtrain, Anda dapat membuatnya di dasbor Mailtrain.

Harap perhatikan bahwa jika bidang MailChimp Anda berisi tombol radio, maka Anda juga harus membuat tombol radio di bidang Mailtrain. Namun, Anda perlu mengelompokkan daftar MailChimp Anda berdasarkan nilai tombol radio, lalu mengekspor segmen ini ke file CSV yang berbeda dan mengimpornya ke Mailtrain satu segmen pada satu waktu. Itu karena Mailtrain tidak menyediakan cara untuk mencocokkan setiap nilai tombol radio dari MailChimp.

Cron Job untuk Membersihkan Alamat Email yang Tidak Berlangganan Secara Otomatis

Anda dapat secara manual menghapus alamat email yang tidak berlangganan di panel admin berbasis web Mailtrain, tetapi jauh lebih efisien untuk menghapusnya menggunakan perintah MySQL/MariaDB, lalu Anda cukup membuat tugas Cron untuk mengotomatiskan tugas ini.

Pertama, login ke server database MySQL/MariaDB.

sudo mysql -u root

Kemudian sambungkan ke database kereta surat.

use mailtrain;

Info pelanggan disimpan di subscription tabel. Jika Anda memiliki beberapa milis, maka Anda akan memiliki beberapa subscription tabel. Anda dapat membuat daftar semua tabel ini menggunakan perintah SQL berikut.

show tables like 'subscription%';

Keluaran di server saya.

+-------------------------------------+
| Tables_in_mailtrain (subscription%) |
+-------------------------------------+
| subscription                        |
| subscription__1                     |
| subscription__2                     |
+-------------------------------------+

Meja pertama adalah meja kosong. Saya memiliki dua daftar di Mailtrain. Mereka disimpan di subscription__1 dan subscription__2 meja. Alamat email langganan memiliki kode status yang disetel ke 1 . Alamat email yang berhenti berlangganan memiliki kode status yang disetel ke 2 . Jadi, untuk menghapus alamat email yang tidak berlangganan, Anda dapat menjalankan perintah SQL berikut.

DELETE FROM subscription__1 where status = '2';
DELETE FROM subscription__2 where status = '2';

To exit MySQL/MariaDB database server, run

exit;

Now open the root user’s crontab file.

sudo crontab -e

Add the following two lines.

# Delete unsubscribed email addresses from mailing list daily
@daily /usr/bin/mysql -u root mailtrain -Bse "DELETE FROM subscription__1 where status = '2';DELETE FROM subscription__2 where status = '2';"

Simpan dan tutup file. And you’re done.

How to Export Your Email Lists in Mailtrain

There’s no export button in the Mailtrain admin panel. However, if you have installed phpMyAdmin on the server, you can export your email lists from there. Select the mailtrain database in phpMyAdmin, then select the table that stores your email lists. In my case, the subscription__1 and subscription__2 tables store subscribers’ information.

Then click the export button to save the table as a file. Note that there are 2 export buttons. You need to click the second export button to export the entire table. The first export button will only export the current visible records in the table.

Next, you can choose the file format for the export file. Finally, click the Go button.

How to Hide the Mailtrain Home Page

If you don’t want visitors to see your mailtrain home page, you can set up a 301 permanent redirect to redirect visitors to your website’s home page, by adding the following code in Mailtrain’s Nginx configuration file.

location = / {
   return 301 http://www.your-domain.com;
}

Simpan dan tutup file. Then reload Nginx for the change to take effect.

sudo systemctl reload nginx

You need to remember the Mailtrain login URL.

https://newsletter.your-domain.com/users/login

By default, the login button will redirect you to the Mailtrain home page, so you need to remember another URL.

https://newsletter.your-domain.com/lists

This allows you to manage your lists and other stuff in the dashboard.

How to Insert Options on the Signup Form

If you want to give options on the signup form for the visitor to select, then you need to create custom fields. Go to your list and select custom fields in the List Actions drop-down menu and create custom field.

First, you need to create a field that will become the header question for the option list. In Field Type , you can select radio button (for single choice) or checkboxes (for multiple choices). In Group , don’t select anything, because this field will become a group for the options.

Then create custom field for each option. You need to choose option for a group value in Field Type , and choose the previous custom filed name in Group .

How to Change Field Type

By default, the Mailtrain web interface doesn’t allow you to change filed type, but you can change it in the mailtrain database. For example, I need to change a field type from checkboxes to radio button .

I recommend backing up the database before changing anything in the database. You can run the following command to backup mailtrain database.

sudo mysqldump -u root mailtrain > mailtrain.sql

Then log into MariaDB database server.

sudo mysql -u root

Use the mailtrain basis data.

USE mailtrain;

All custom fields are stored in the custom_fields meja. You can check its content with:

SELECT * FROM custom_fields;

Find the custom field you want to modify and run the following SQL command to change its type. Replace the id number with your own.

UPDATE custom_fields SET type = 'radio' Where id = 3;

Exit the database server.

EXIT;

How to Clean Your Email List in Mailtrain

Unengaged subscribers won’t make you money and because they don’t open your email, mailbox providers will reduce your domain reputation. To make sure your future email will get into the inbox, you should remove unengaged subscribers from your email list.

You can create a segment for people who didn’t open your email in the last 60 days, then delete their email addresses. The rule for this segment is as follows:

RAM Requirement

Mailtrain can use quite a lot of RAM. Make sure your server has at least 1GB free RAM. For example, if the current RAM usage is 4GB, then the total RAM should be at least 5GB. If RAM runs out, emails in Mailtrain could be bounced.


Ubuntu
  1. Cara Menginstal Docker di Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  2. Instal Server 18.04 Tanpa Koneksi Jaringan?

  3. Bagaimana Cara Menginstal Server Ubuntu Tanpa Koneksi Jaringan?

  1. Cara Menginstal Docker Di Ubuntu 18.04

  2. Instal server SSH Ubuntu 22.04

  3. Cara menginstal Docker di Ubuntu 22.04

  1. Cara Menginstal Docker CE (Edisi Komunitas) di Server Ubuntu

  2. Cara Menginstal Perangkat Lunak Buletin Mailtrain di Ubuntu 18.04

  3. Cara Menginstal Docker di Server Ubuntu 18.04 LTS