Menyebarkan Sinyal untuk On-Premises: Integrasi PowerMTA
Burung
30 Agu 2019
1 min read

Poin Penting
Tujuan: Panduan ini menjelaskan cara mengintegrasikan PowerMTA 5.0+ dengan SparkPost Signals untuk mengalirkan data acara dan keterlibatan (bounce, buka, klik, keluhan spam) dari MTA yang ada di lokasi langsung ke lapisan analitik SparkPost.
Konfigurasi inti:
Tambahkan enable-signals true dan tentukan endpoint ingest SparkPost Anda (https://api.sparkpost.com/api/v1/ingest/events atau yang setara di EU).
Gunakan kunci API yang valid dengan izin “Incoming Events: Write”.
Tentukan customer-id, dan jika perlu, atur domain pelacakan kustom untuk meningkatkan deliverability.
Pemasangan pelacakan: Pelacakan Keterlibatan PowerMTA secara otomatis menyuntikkan piksel buka dan klik ke dalam email HTML. Anda dapat menonaktifkan pelacakan per tautan dengan atribut data-msys-clicktrack="0".
Laporan selektif: Signals dapat diaktifkan secara global atau dibatasi untuk VirtualMTAs, pool, atau domain pengirim tertentu, memungkinkan kontrol data yang lebih tepat.
Penguji & verifikasi: Gunakan dasbor Integrasi Signals dan log PowerMTA untuk mengonfirmasi pengambilan acara dan melacak Skor Kesehatan, bounces, dan metrik keterlibatan secara real-time.
Penyetelan deliverability:
Gunakan nama VirtualMTA dan Job yang bermakna — ini terhubung langsung ke IP Pools dan Campaign IDs dalam laporan SparkPost.
Konfigurasi penandatanganan DKIM, penegakan TLS, dan aturan relay yang tepat untuk mencegah injeksi yang tidak sah.
Pemasangan lanjutan: Artikel ini juga menyertakan cuplikan siap pakai untuk FBL & penanganan bounce keluar jalur, penyuntikan SMTP terautentikasi (port 587), dan kode Python untuk menyaring header X-Job agar kompatibel.
Sorotan Tanya jawab
Apa sebenarnya yang dilakukan integrasi Signals?
Ini secara otomatis mengunggah acara pesan PowerMTA (injeksi, pengiriman, pantulan, keterlibatan) ke akun SparkPost Anda sehingga Anda dapat mengakses dasbor seperti Skor Kesehatan, laporan Keterlambatan, dan Pemantauan Perangkap Spam.
Mengapa mengintegrasikan Signals dengan MTA lokal?
Banyak perusahaan menjalankan infrastruktur email yang dihosting sendiri untuk alasan kepatuhan tetapi masih menginginkan kemampuan analitik dan pemantauan SparkPost. Signals menjembatani kesenjangan itu tanpa memindahkan pengiriman email ke cloud.
Bagaimana saya dapat memverifikasi bahwa acara mengalir ke SparkPost?
Periksa log PowerMTA untuk
Signals: Transferred ... berhasildan konfirmasi entri acara di bawah Signals → Events Search di SparkPost.Bisakah saya menggunakan domain pelacakan saya sendiri?
Ya — konfigurasikan CNAME seperti
track.mycompany.com → pmta.spgo.io(AS) ataupmta.eu.spgo.io(UE), lalu daftarkan dan verifikasi di SparkPost untuk konsistensi merek dan reputasi.Bagaimana dengan privasi data atau penggunaan disk?
Direktif
min-free-spacesecara otomatis menghapus file JSON event yang lama ketika ruang disk mulai menipis, mencegah penumpukan data telemetry lokal.Apa itu "fitur bonus" di akhir?
Sebuah utilitas regex Python (
pmtaSafeJobID) yang memastikan nama kampanye/pekerjaan hanya menggunakan karakter yang valid dalam format headerX-JobPowerMTA, mengganti karakter yang tidak aman dengan garis bawah.
Mari kita bahas rincian pengaturan PowerMTA untuk SparkPost Signals. Anda akan membutuhkan:
Host untuk menjalankan versi terbaru PowerMTA – baik mesin baru atau yang sudah ada
Akun SparkPost dengan izin kunci API untuk “Incoming Events: Write” sebagaimana dijelaskan di sini
Kita akan mengatur PowerMTA untuk melakukan streaming acara ke akun SparkPost Anda, kemudian Anda akan dapat menggunakan yang berikut:
Mari kita bahas rincian pengaturan PowerMTA untuk SparkPost Signals. Anda akan membutuhkan:
Host untuk menjalankan versi terbaru PowerMTA – baik mesin baru atau yang sudah ada
Akun SparkPost dengan izin kunci API untuk “Incoming Events: Write” sebagaimana dijelaskan di sini
Kita akan mengatur PowerMTA untuk melakukan streaming acara ke akun SparkPost Anda, kemudian Anda akan dapat menggunakan yang berikut:
Mari kita bahas rincian pengaturan PowerMTA untuk SparkPost Signals. Anda akan membutuhkan:
Host untuk menjalankan versi terbaru PowerMTA – baik mesin baru atau yang sudah ada
Akun SparkPost dengan izin kunci API untuk “Incoming Events: Write” sebagaimana dijelaskan di sini
Kita akan mengatur PowerMTA untuk melakukan streaming acara ke akun SparkPost Anda, kemudian Anda akan dapat menggunakan yang berikut:
Gambaran umum instalasi dan konfigurasi
Pertama, instal (atau perbarui) ke PowerMTA 5.0 r4 atau lebih baru, mengikuti petunjuk instalasi v5.0 yang biasa yang cukup sederhana. Kemudian kita akan melalui langkah-langkah berikut:
Konfigurasi konektor PowerMTA ke SparkPost Signals
Siapkan Pelacakan Keterlibatan dengan domain pelacakan kustom
Pilih aliran lalu lintas PowerMTA mana yang akan dilaporkan ke Signals
Menguji bahwa peristiwa Anda mencapai Signals
Tinjau cara menggunakan nama yang berarti yang muncul dengan baik dalam laporan.
Kami juga akan membahas aspek pengaturan PowerMTA khusus lainnya yang digunakan dalam demo Signals kami:
Peristiwa FBL (Keluhan Spam) dan pantulan jarak jauh (out-of-band)
Konfigurasi injeksi, termasuk DKIM
Konfigurasi FBL dan OOB
Pengaturan dan penamaan VirtualMTA (dan bagaimana ini muncul dalam laporan SparkPost Signals Anda)
Akhirnya, ada “fitur bonus” dengan kode untuk memastikan nama kampanye Anda kompatibel dengan konvensi nama PowerMTA X-Job
Pertama, instal (atau perbarui) ke PowerMTA 5.0 r4 atau lebih baru, mengikuti petunjuk instalasi v5.0 yang biasa yang cukup sederhana. Kemudian kita akan melalui langkah-langkah berikut:
Konfigurasi konektor PowerMTA ke SparkPost Signals
Siapkan Pelacakan Keterlibatan dengan domain pelacakan kustom
Pilih aliran lalu lintas PowerMTA mana yang akan dilaporkan ke Signals
Menguji bahwa peristiwa Anda mencapai Signals
Tinjau cara menggunakan nama yang berarti yang muncul dengan baik dalam laporan.
Kami juga akan membahas aspek pengaturan PowerMTA khusus lainnya yang digunakan dalam demo Signals kami:
Peristiwa FBL (Keluhan Spam) dan pantulan jarak jauh (out-of-band)
Konfigurasi injeksi, termasuk DKIM
Konfigurasi FBL dan OOB
Pengaturan dan penamaan VirtualMTA (dan bagaimana ini muncul dalam laporan SparkPost Signals Anda)
Akhirnya, ada “fitur bonus” dengan kode untuk memastikan nama kampanye Anda kompatibel dengan konvensi nama PowerMTA X-Job
Pertama, instal (atau perbarui) ke PowerMTA 5.0 r4 atau lebih baru, mengikuti petunjuk instalasi v5.0 yang biasa yang cukup sederhana. Kemudian kita akan melalui langkah-langkah berikut:
Konfigurasi konektor PowerMTA ke SparkPost Signals
Siapkan Pelacakan Keterlibatan dengan domain pelacakan kustom
Pilih aliran lalu lintas PowerMTA mana yang akan dilaporkan ke Signals
Menguji bahwa peristiwa Anda mencapai Signals
Tinjau cara menggunakan nama yang berarti yang muncul dengan baik dalam laporan.
Kami juga akan membahas aspek pengaturan PowerMTA khusus lainnya yang digunakan dalam demo Signals kami:
Peristiwa FBL (Keluhan Spam) dan pantulan jarak jauh (out-of-band)
Konfigurasi injeksi, termasuk DKIM
Konfigurasi FBL dan OOB
Pengaturan dan penamaan VirtualMTA (dan bagaimana ini muncul dalam laporan SparkPost Signals Anda)
Akhirnya, ada “fitur bonus” dengan kode untuk memastikan nama kampanye Anda kompatibel dengan konvensi nama PowerMTA X-Job
Konfigurasi FBL dan OOB
Sekarang .. akhirnya .. kami menyatakan domain khusus mana yang terbuka untuk bounce jarak jauh dan respons FBL. Kami tidak ingin meneruskan itu ke mana pun (untuk mencegah serangan backscatter), hanya memproses respons tersebut secara internal.
# # Enable Bounce and FBL processing on specific domains # relay-domain pmta.signalsdemo.trymsys.net relay-domain bounces.pmta.signalsdemo.trymsys.net relay-domain fbl.pmta.signalsdemo.trymsys.net <bounce-processor> deliver-unmatched-email no deliver-matched-email no <address-list> domain pmta.signalsdemo.trymsys.net domain bounces.pmta.signalsdemo.trymsys.net </address-list> </bounce-processor> <feedback-loop-processor> deliver-unmatched-email no deliver-matched-email no <address-list> domain fbl.pmta.signalsdemo.trymsys.net </address-list> </feedback-loop-processor>
Anda dapat melihat saya telah mengatur dua domain bounce, saat saya mencoba menggunakan/tidak menggunakan aturan rewrite mfrom .
Domain FBL biasanya kemudian terdaftar dengan layanan eksternal seperti Microsoft SNDS; lihat artikel ini untuk informasi lebih lanjut. Untuk demo ini, FBL akan datang dari Bouncy Sink, jadi tidak perlu mendaftar.
Sekarang .. akhirnya .. kami menyatakan domain khusus mana yang terbuka untuk bounce jarak jauh dan respons FBL. Kami tidak ingin meneruskan itu ke mana pun (untuk mencegah serangan backscatter), hanya memproses respons tersebut secara internal.
# # Enable Bounce and FBL processing on specific domains # relay-domain pmta.signalsdemo.trymsys.net relay-domain bounces.pmta.signalsdemo.trymsys.net relay-domain fbl.pmta.signalsdemo.trymsys.net <bounce-processor> deliver-unmatched-email no deliver-matched-email no <address-list> domain pmta.signalsdemo.trymsys.net domain bounces.pmta.signalsdemo.trymsys.net </address-list> </bounce-processor> <feedback-loop-processor> deliver-unmatched-email no deliver-matched-email no <address-list> domain fbl.pmta.signalsdemo.trymsys.net </address-list> </feedback-loop-processor>
Anda dapat melihat saya telah mengatur dua domain bounce, saat saya mencoba menggunakan/tidak menggunakan aturan rewrite mfrom .
Domain FBL biasanya kemudian terdaftar dengan layanan eksternal seperti Microsoft SNDS; lihat artikel ini untuk informasi lebih lanjut. Untuk demo ini, FBL akan datang dari Bouncy Sink, jadi tidak perlu mendaftar.
Sekarang .. akhirnya .. kami menyatakan domain khusus mana yang terbuka untuk bounce jarak jauh dan respons FBL. Kami tidak ingin meneruskan itu ke mana pun (untuk mencegah serangan backscatter), hanya memproses respons tersebut secara internal.
# # Enable Bounce and FBL processing on specific domains # relay-domain pmta.signalsdemo.trymsys.net relay-domain bounces.pmta.signalsdemo.trymsys.net relay-domain fbl.pmta.signalsdemo.trymsys.net <bounce-processor> deliver-unmatched-email no deliver-matched-email no <address-list> domain pmta.signalsdemo.trymsys.net domain bounces.pmta.signalsdemo.trymsys.net </address-list> </bounce-processor> <feedback-loop-processor> deliver-unmatched-email no deliver-matched-email no <address-list> domain fbl.pmta.signalsdemo.trymsys.net </address-list> </feedback-loop-processor>
Anda dapat melihat saya telah mengatur dua domain bounce, saat saya mencoba menggunakan/tidak menggunakan aturan rewrite mfrom .
Domain FBL biasanya kemudian terdaftar dengan layanan eksternal seperti Microsoft SNDS; lihat artikel ini untuk informasi lebih lanjut. Untuk demo ini, FBL akan datang dari Bouncy Sink, jadi tidak perlu mendaftar.
Konfigurasi konektor PowerMTA
Konfigurasi Signals dijelaskan dalam panduan pengguna 5.0 bagian 10.1. Di sini kita akan mulai dengan “Kasus Penggunaan #2”, yang mengaktifkan Signals untuk semua lalu lintas dari host PowerMTA ini, dan mengaktifkan pelacakan keterlibatan SparkPost.
# # SparkPost Signals # <signals> api-key ##my ingest API key here## upload-url https://api.sparkpost.com/api/v1/ingest/events log-verbose true min-free-space 1G engagement-tracking sparkpost # this turns on the open and click tracking in PowerMTA customer-id 123 # Your SparkPost account number here </signals> enable-signals true
Inilah yang dilakukan masing-masing atribut:
api-key
Ini unik untuk akun SparkPost Anda, nilainya yang Anda peroleh dari SparkPost sebelumnya.
upload-url
Ini perlu sesuai dengan alamat layanan API SparkPost Anda, apakah itu AS atau UE. Untuk informasi lebih lanjut lihat di sini. Nilai-nilai biasa adalah:
SparkPost (AS): https://api.sparkpost.com/api/v1/ingest/events
SparkPost UE: https://api.eu.sparkpost.com/api/v1/ingest/events
log-verbose
Instruksi ini opsional dan ketika diaktifkan, memberikan sedikit lebih banyak informasi di file pmta.log, yang bisa berguna selama pengaturan untuk mengonfirmasi bahwa semuanya berfungsi dengan benar. Setiap menit, bahkan ketika tidak ada lalu lintas, Anda akan melihat:
2019-07-26 11:47:57 Signals: Ditemukan 0 file
Dengan lalu lintas, Anda akan melihat sesuatu seperti:
2019-07-26 11:50:57 Signals: Discovered sp1-0000000000003FBD.json 2019-07-26 11:50:57 Signals: Transferred sp1-0000000000003FBD.json successfully. 2019-07-26 11:50:57 Signals: Discovered 1 file, transferred 1 file successfully
min-free-space
Ini memberi tahu PowerMTA ambang ruang disk di mana ia harus mulai menghapus file JSON kejadian SparkPost tertua untuk memberikan ruang bagi file baru ketika ruang disk berkurang.
enable-signals
Ini memberi tahu PowerMTA untuk mengunggah ke Signals, dalam hal ini secara global untuk semua lalu lintas (informasi lebih lanjut di sini, untuk v5.0). Anda bisa lebih selektif tentang aliran lalu lintas yang ingin diunggah jika Anda mau.
Anda juga dapat menandai lalu lintas PowerMTA tertentu untuk dilaporkan sebagai milik SparkPost subakun – ini adalah cara lain untuk membedakan satu aliran lalu lintas tertentu dari yang lain.
pelacakan-keterlibatan, customer-id
Solusi Pelacakan Keterlibatan PowerMTA secara default menggunakan domain pelacakan untuk layanan SparkPost yang di-host di AS. Anda menentukan ID pelanggan numerik SparkPost Anda; berikut adalah instruksi untuk menemukannya.
tracking-domain
Untuk akun SparkPost UE, tambahkan baris berikut:
tracking-domain pmta.eu.spgo.io # ini adalah titik akhir untuk SparkPost UE
Domain Pelacakan Kustom
Jika Anda lebih suka menggunakan domain pelacakan Anda sendiri (ini lebih baik dari sudut pandang keteririman), lakukan yang berikut:
Buat domain pelacakan dengan penyedia DNS Anda dengan membuat catatan CNAME. Ini biasanya akan menjadi subdomain dari domain tingkat atas Anda, misalnya track.mycompany.com .
track.mycompany.com CNAME pmta.spgo.io # if you have a SparkPost US account track.mycompany.com CNAME pmta.eu.spgo.io # if you have a SparkPost EU account
Anda juga dapat menggunakan domain pelacakan HTTPS, meskipun ini lebih rumit (lihat langkah-langkah konfigurasi SparkPost untuk domain pelacakan HTTPS).
Daftarkan domain pelacakan di akun SparkPost Anda, dan verifikasi itu. Tunggu beberapa menit sebelum mencoba ini, untuk memungkinkan perubahan DNS Anda menyebar ke Internet, tergantung pada penyedia DNS Anda.
Konfigurasikan PowerMTA untuk menggunakan domain tersebut alih-alih default, dengan
tracking-domain yourdomain.com # Masukkan domain Anda di sini
Anda dapat memeriksa bahwa email yang Anda kirimkan memiliki “pixel buka” yang ditambahkan dan tautan yang dilapisi, dengan melihat di bagian dalam email (di Gmail, gunakan menu di kanan atas dan pilih “Tampilkan Asli”).

Anda akan melihat pixel buka di awal dan akhir HTML dalam email. Setiap tautan HTML juga diubah sehingga memiliki REF yang mengarah ke domain pelacakan.

Itulah semua yang Anda butuhkan untuk membuat SparkPost Signals bekerja dengan Pelacakan Keterlibatan bawaan PowerMTA.
Mencegah tautan tertentu di email html Anda agar tidak dilacak
Anda dapat mencegah PowerMTA melacak tautan tertentu, dengan mengatur atribut kustom data-msys-clicktrack menjadi “0” :
<a href="#" data-msys-clicktrack="0">Contoh</a>
PowerMTA tidak akan membungkus tautan tersebut. Ini juga akan menghapus atribut tersebut sebelum mengirim pesan kepada penerima Anda.
Konfigurasi Signals dijelaskan dalam panduan pengguna 5.0 bagian 10.1. Di sini kita akan mulai dengan “Kasus Penggunaan #2”, yang mengaktifkan Signals untuk semua lalu lintas dari host PowerMTA ini, dan mengaktifkan pelacakan keterlibatan SparkPost.
# # SparkPost Signals # <signals> api-key ##my ingest API key here## upload-url https://api.sparkpost.com/api/v1/ingest/events log-verbose true min-free-space 1G engagement-tracking sparkpost # this turns on the open and click tracking in PowerMTA customer-id 123 # Your SparkPost account number here </signals> enable-signals true
Inilah yang dilakukan masing-masing atribut:
api-key
Ini unik untuk akun SparkPost Anda, nilainya yang Anda peroleh dari SparkPost sebelumnya.
upload-url
Ini perlu sesuai dengan alamat layanan API SparkPost Anda, apakah itu AS atau UE. Untuk informasi lebih lanjut lihat di sini. Nilai-nilai biasa adalah:
SparkPost (AS): https://api.sparkpost.com/api/v1/ingest/events
SparkPost UE: https://api.eu.sparkpost.com/api/v1/ingest/events
log-verbose
Instruksi ini opsional dan ketika diaktifkan, memberikan sedikit lebih banyak informasi di file pmta.log, yang bisa berguna selama pengaturan untuk mengonfirmasi bahwa semuanya berfungsi dengan benar. Setiap menit, bahkan ketika tidak ada lalu lintas, Anda akan melihat:
2019-07-26 11:47:57 Signals: Ditemukan 0 file
Dengan lalu lintas, Anda akan melihat sesuatu seperti:
2019-07-26 11:50:57 Signals: Discovered sp1-0000000000003FBD.json 2019-07-26 11:50:57 Signals: Transferred sp1-0000000000003FBD.json successfully. 2019-07-26 11:50:57 Signals: Discovered 1 file, transferred 1 file successfully
min-free-space
Ini memberi tahu PowerMTA ambang ruang disk di mana ia harus mulai menghapus file JSON kejadian SparkPost tertua untuk memberikan ruang bagi file baru ketika ruang disk berkurang.
enable-signals
Ini memberi tahu PowerMTA untuk mengunggah ke Signals, dalam hal ini secara global untuk semua lalu lintas (informasi lebih lanjut di sini, untuk v5.0). Anda bisa lebih selektif tentang aliran lalu lintas yang ingin diunggah jika Anda mau.
Anda juga dapat menandai lalu lintas PowerMTA tertentu untuk dilaporkan sebagai milik SparkPost subakun – ini adalah cara lain untuk membedakan satu aliran lalu lintas tertentu dari yang lain.
pelacakan-keterlibatan, customer-id
Solusi Pelacakan Keterlibatan PowerMTA secara default menggunakan domain pelacakan untuk layanan SparkPost yang di-host di AS. Anda menentukan ID pelanggan numerik SparkPost Anda; berikut adalah instruksi untuk menemukannya.
tracking-domain
Untuk akun SparkPost UE, tambahkan baris berikut:
tracking-domain pmta.eu.spgo.io # ini adalah titik akhir untuk SparkPost UE
Domain Pelacakan Kustom
Jika Anda lebih suka menggunakan domain pelacakan Anda sendiri (ini lebih baik dari sudut pandang keteririman), lakukan yang berikut:
Buat domain pelacakan dengan penyedia DNS Anda dengan membuat catatan CNAME. Ini biasanya akan menjadi subdomain dari domain tingkat atas Anda, misalnya track.mycompany.com .
track.mycompany.com CNAME pmta.spgo.io # if you have a SparkPost US account track.mycompany.com CNAME pmta.eu.spgo.io # if you have a SparkPost EU account
Anda juga dapat menggunakan domain pelacakan HTTPS, meskipun ini lebih rumit (lihat langkah-langkah konfigurasi SparkPost untuk domain pelacakan HTTPS).
Daftarkan domain pelacakan di akun SparkPost Anda, dan verifikasi itu. Tunggu beberapa menit sebelum mencoba ini, untuk memungkinkan perubahan DNS Anda menyebar ke Internet, tergantung pada penyedia DNS Anda.
Konfigurasikan PowerMTA untuk menggunakan domain tersebut alih-alih default, dengan
tracking-domain yourdomain.com # Masukkan domain Anda di sini
Anda dapat memeriksa bahwa email yang Anda kirimkan memiliki “pixel buka” yang ditambahkan dan tautan yang dilapisi, dengan melihat di bagian dalam email (di Gmail, gunakan menu di kanan atas dan pilih “Tampilkan Asli”).

Anda akan melihat pixel buka di awal dan akhir HTML dalam email. Setiap tautan HTML juga diubah sehingga memiliki REF yang mengarah ke domain pelacakan.

Itulah semua yang Anda butuhkan untuk membuat SparkPost Signals bekerja dengan Pelacakan Keterlibatan bawaan PowerMTA.
Mencegah tautan tertentu di email html Anda agar tidak dilacak
Anda dapat mencegah PowerMTA melacak tautan tertentu, dengan mengatur atribut kustom data-msys-clicktrack menjadi “0” :
<a href="#" data-msys-clicktrack="0">Contoh</a>
PowerMTA tidak akan membungkus tautan tersebut. Ini juga akan menghapus atribut tersebut sebelum mengirim pesan kepada penerima Anda.
Konfigurasi Signals dijelaskan dalam panduan pengguna 5.0 bagian 10.1. Di sini kita akan mulai dengan “Kasus Penggunaan #2”, yang mengaktifkan Signals untuk semua lalu lintas dari host PowerMTA ini, dan mengaktifkan pelacakan keterlibatan SparkPost.
# # SparkPost Signals # <signals> api-key ##my ingest API key here## upload-url https://api.sparkpost.com/api/v1/ingest/events log-verbose true min-free-space 1G engagement-tracking sparkpost # this turns on the open and click tracking in PowerMTA customer-id 123 # Your SparkPost account number here </signals> enable-signals true
Inilah yang dilakukan masing-masing atribut:
api-key
Ini unik untuk akun SparkPost Anda, nilainya yang Anda peroleh dari SparkPost sebelumnya.
upload-url
Ini perlu sesuai dengan alamat layanan API SparkPost Anda, apakah itu AS atau UE. Untuk informasi lebih lanjut lihat di sini. Nilai-nilai biasa adalah:
SparkPost (AS): https://api.sparkpost.com/api/v1/ingest/events
SparkPost UE: https://api.eu.sparkpost.com/api/v1/ingest/events
log-verbose
Instruksi ini opsional dan ketika diaktifkan, memberikan sedikit lebih banyak informasi di file pmta.log, yang bisa berguna selama pengaturan untuk mengonfirmasi bahwa semuanya berfungsi dengan benar. Setiap menit, bahkan ketika tidak ada lalu lintas, Anda akan melihat:
2019-07-26 11:47:57 Signals: Ditemukan 0 file
Dengan lalu lintas, Anda akan melihat sesuatu seperti:
2019-07-26 11:50:57 Signals: Discovered sp1-0000000000003FBD.json 2019-07-26 11:50:57 Signals: Transferred sp1-0000000000003FBD.json successfully. 2019-07-26 11:50:57 Signals: Discovered 1 file, transferred 1 file successfully
min-free-space
Ini memberi tahu PowerMTA ambang ruang disk di mana ia harus mulai menghapus file JSON kejadian SparkPost tertua untuk memberikan ruang bagi file baru ketika ruang disk berkurang.
enable-signals
Ini memberi tahu PowerMTA untuk mengunggah ke Signals, dalam hal ini secara global untuk semua lalu lintas (informasi lebih lanjut di sini, untuk v5.0). Anda bisa lebih selektif tentang aliran lalu lintas yang ingin diunggah jika Anda mau.
Anda juga dapat menandai lalu lintas PowerMTA tertentu untuk dilaporkan sebagai milik SparkPost subakun – ini adalah cara lain untuk membedakan satu aliran lalu lintas tertentu dari yang lain.
pelacakan-keterlibatan, customer-id
Solusi Pelacakan Keterlibatan PowerMTA secara default menggunakan domain pelacakan untuk layanan SparkPost yang di-host di AS. Anda menentukan ID pelanggan numerik SparkPost Anda; berikut adalah instruksi untuk menemukannya.
tracking-domain
Untuk akun SparkPost UE, tambahkan baris berikut:
tracking-domain pmta.eu.spgo.io # ini adalah titik akhir untuk SparkPost UE
Domain Pelacakan Kustom
Jika Anda lebih suka menggunakan domain pelacakan Anda sendiri (ini lebih baik dari sudut pandang keteririman), lakukan yang berikut:
Buat domain pelacakan dengan penyedia DNS Anda dengan membuat catatan CNAME. Ini biasanya akan menjadi subdomain dari domain tingkat atas Anda, misalnya track.mycompany.com .
track.mycompany.com CNAME pmta.spgo.io # if you have a SparkPost US account track.mycompany.com CNAME pmta.eu.spgo.io # if you have a SparkPost EU account
Anda juga dapat menggunakan domain pelacakan HTTPS, meskipun ini lebih rumit (lihat langkah-langkah konfigurasi SparkPost untuk domain pelacakan HTTPS).
Daftarkan domain pelacakan di akun SparkPost Anda, dan verifikasi itu. Tunggu beberapa menit sebelum mencoba ini, untuk memungkinkan perubahan DNS Anda menyebar ke Internet, tergantung pada penyedia DNS Anda.
Konfigurasikan PowerMTA untuk menggunakan domain tersebut alih-alih default, dengan
tracking-domain yourdomain.com # Masukkan domain Anda di sini
Anda dapat memeriksa bahwa email yang Anda kirimkan memiliki “pixel buka” yang ditambahkan dan tautan yang dilapisi, dengan melihat di bagian dalam email (di Gmail, gunakan menu di kanan atas dan pilih “Tampilkan Asli”).

Anda akan melihat pixel buka di awal dan akhir HTML dalam email. Setiap tautan HTML juga diubah sehingga memiliki REF yang mengarah ke domain pelacakan.

Itulah semua yang Anda butuhkan untuk membuat SparkPost Signals bekerja dengan Pelacakan Keterlibatan bawaan PowerMTA.
Mencegah tautan tertentu di email html Anda agar tidak dilacak
Anda dapat mencegah PowerMTA melacak tautan tertentu, dengan mengatur atribut kustom data-msys-clicktrack menjadi “0” :
<a href="#" data-msys-clicktrack="0">Contoh</a>
PowerMTA tidak akan membungkus tautan tersebut. Ini juga akan menghapus atribut tersebut sebelum mengirim pesan kepada penerima Anda.
Pilih aliran lalu lintas PowerMTA mana yang akan dilaporkan ke Signals
Anda dapat memilih Sinyal untuk diaktifkan:
Secara Global (ini adalah apa yang kami gunakan dalam contoh di atas)
Untuk beberapa MTA Virtual dan tidak yang lain
Untuk beberapa kumpulan MTA Virtual dan tidak yang lain
Untuk alamat “Pengirim” atau “Dari” tertentu yang diteruskan oleh PowerMTA, dalam kombinasi dengan pilihan MTA Virtual / kumpulan MTA Virtual
Ruang Lingkup | Apa yang dilaporkan ke Sinyal | Kapan menggunakannya |
|---|---|---|
Global | Semua lalu lintas dari host PowerMTA | Penyebaran sederhana di mana semua lalu lintas harus memberi makan ke Sinyal SparkPost. |
MTA Virtual | Lalu lintas dari MTA Virtual yang terpilih saja | Ketika Anda ingin tampilan pelaporan terpisah untuk IP atau jenis lalu lintas yang berbeda. |
Kumpulan MTA Virtual | Lalu lintas dari kumpulan MTA Virtual yang terpilih | Ketika Anda mengelompokkan IP ke dalam kumpulan dan ingin pelaporan tingkat kumpulan. |
Pengirim / Domain Dari | Pesan dari pengirim tertentu atau domain Dari | Ketika Anda memerlukan pelaporan per-klien atau per-merek dalam infrastruktur yang sama. |
Konfigurasi ini sangat kuat dan diilustrasikan melalui serangkaian contoh kasus penggunaan (v5.0) dalam Panduan Pengguna.
Anda dapat memilih Sinyal untuk diaktifkan:
Secara Global (ini adalah apa yang kami gunakan dalam contoh di atas)
Untuk beberapa MTA Virtual dan tidak yang lain
Untuk beberapa kumpulan MTA Virtual dan tidak yang lain
Untuk alamat “Pengirim” atau “Dari” tertentu yang diteruskan oleh PowerMTA, dalam kombinasi dengan pilihan MTA Virtual / kumpulan MTA Virtual
Ruang Lingkup | Apa yang dilaporkan ke Sinyal | Kapan menggunakannya |
|---|---|---|
Global | Semua lalu lintas dari host PowerMTA | Penyebaran sederhana di mana semua lalu lintas harus memberi makan ke Sinyal SparkPost. |
MTA Virtual | Lalu lintas dari MTA Virtual yang terpilih saja | Ketika Anda ingin tampilan pelaporan terpisah untuk IP atau jenis lalu lintas yang berbeda. |
Kumpulan MTA Virtual | Lalu lintas dari kumpulan MTA Virtual yang terpilih | Ketika Anda mengelompokkan IP ke dalam kumpulan dan ingin pelaporan tingkat kumpulan. |
Pengirim / Domain Dari | Pesan dari pengirim tertentu atau domain Dari | Ketika Anda memerlukan pelaporan per-klien atau per-merek dalam infrastruktur yang sama. |
Konfigurasi ini sangat kuat dan diilustrasikan melalui serangkaian contoh kasus penggunaan (v5.0) dalam Panduan Pengguna.
Anda dapat memilih Sinyal untuk diaktifkan:
Secara Global (ini adalah apa yang kami gunakan dalam contoh di atas)
Untuk beberapa MTA Virtual dan tidak yang lain
Untuk beberapa kumpulan MTA Virtual dan tidak yang lain
Untuk alamat “Pengirim” atau “Dari” tertentu yang diteruskan oleh PowerMTA, dalam kombinasi dengan pilihan MTA Virtual / kumpulan MTA Virtual
Ruang Lingkup | Apa yang dilaporkan ke Sinyal | Kapan menggunakannya |
|---|---|---|
Global | Semua lalu lintas dari host PowerMTA | Penyebaran sederhana di mana semua lalu lintas harus memberi makan ke Sinyal SparkPost. |
MTA Virtual | Lalu lintas dari MTA Virtual yang terpilih saja | Ketika Anda ingin tampilan pelaporan terpisah untuk IP atau jenis lalu lintas yang berbeda. |
Kumpulan MTA Virtual | Lalu lintas dari kumpulan MTA Virtual yang terpilih | Ketika Anda mengelompokkan IP ke dalam kumpulan dan ingin pelaporan tingkat kumpulan. |
Pengirim / Domain Dari | Pesan dari pengirim tertentu atau domain Dari | Ketika Anda memerlukan pelaporan per-klien atau per-merek dalam infrastruktur yang sama. |
Konfigurasi ini sangat kuat dan diilustrasikan melalui serangkaian contoh kasus penggunaan (v5.0) dalam Panduan Pengguna.
Menguji bahwa acara Anda mencapai Signals
Ini adalah tampilan SparkPost Signals, terhubung ke PowerMTA. Anda dapat melihat bahwa skor kesehatan bervariasi.

Nama Kampanye tersedia sebagai facet pelaporan, bersama dengan Subakun, IP Pool, Penyedia Kotak Surat, dan Domain Pengiriman.
Saat melihat log PowerMTA, Anda dapat memeriksa bahwa data peristiwa mencapai SparkPost dengan melihat layar Integrasi Signals.

Di layar Pencarian Peristiwa SparkPost Anda, Anda harus melihat peristiwa muncul dalam beberapa menit. Ini akan mencakup peristiwa Pemasukan dan Pengiriman, serta Bounce, dan berpotensi Bounce Luar Jalur dan peristiwa Pengaduan Spam, jika Anda telah mengonfigurasi PowerMTA untuk menangani itu untuk Anda.
Jika Anda mengaktifkan Pelacakan Keterlibatan, Anda juga akan melihat peristiwa buka , buka_awal , dan klik .
Ini adalah tampilan SparkPost Signals, terhubung ke PowerMTA. Anda dapat melihat bahwa skor kesehatan bervariasi.

Nama Kampanye tersedia sebagai facet pelaporan, bersama dengan Subakun, IP Pool, Penyedia Kotak Surat, dan Domain Pengiriman.
Saat melihat log PowerMTA, Anda dapat memeriksa bahwa data peristiwa mencapai SparkPost dengan melihat layar Integrasi Signals.

Di layar Pencarian Peristiwa SparkPost Anda, Anda harus melihat peristiwa muncul dalam beberapa menit. Ini akan mencakup peristiwa Pemasukan dan Pengiriman, serta Bounce, dan berpotensi Bounce Luar Jalur dan peristiwa Pengaduan Spam, jika Anda telah mengonfigurasi PowerMTA untuk menangani itu untuk Anda.
Jika Anda mengaktifkan Pelacakan Keterlibatan, Anda juga akan melihat peristiwa buka , buka_awal , dan klik .
Ini adalah tampilan SparkPost Signals, terhubung ke PowerMTA. Anda dapat melihat bahwa skor kesehatan bervariasi.

Nama Kampanye tersedia sebagai facet pelaporan, bersama dengan Subakun, IP Pool, Penyedia Kotak Surat, dan Domain Pengiriman.
Saat melihat log PowerMTA, Anda dapat memeriksa bahwa data peristiwa mencapai SparkPost dengan melihat layar Integrasi Signals.

Di layar Pencarian Peristiwa SparkPost Anda, Anda harus melihat peristiwa muncul dalam beberapa menit. Ini akan mencakup peristiwa Pemasukan dan Pengiriman, serta Bounce, dan berpotensi Bounce Luar Jalur dan peristiwa Pengaduan Spam, jika Anda telah mengonfigurasi PowerMTA untuk menangani itu untuk Anda.
Jika Anda mengaktifkan Pelacakan Keterlibatan, Anda juga akan melihat peristiwa buka , buka_awal , dan klik .
Menggunakan nama yang berarti yang muncul dengan baik dalam laporan
Menyiapkan nama Pool VirtualMTA PowerMTA dan nama Pekerjaan agar berarti dan dapat dibaca manusia sangat layak untuk dilakukan. Ini muncul langsung dalam aspek Sinyal SparkPost Anda dan laporan Ringkasan.
Seperti yang disebutkan sebelumnya, Anda tidak perlu membuat pool ini di akun SparkPost Anda. SparkPost mengambilnya dari konfigurasi PowerMTA Anda.
Inilah cara istilah konfigurasi PowerMTA diterjemahkan ke istilah SparkPost.
Istilah PowerMTA Istilah Laporan / Sinyal SparkPostDomain Penerima
(domain portion of “rcpt” field in Accounting file).Recipient Domain The domain portion of the “Sender” or “From” header in the message relayed by PowerMTA. (domain portion of “orig” in Accounting file).Sending Domain VirtualMTA (name)—VirtualMTA Pool (name) (“vmtaPool” in accounting file)IP Pool (name) smtp-source-host a.b.c.d (“dlvSourceIp” in accounting file)Sending IP a.b.c.d Job (name) (“jobId” in accounting file)Campaign ID (name)—Template (name) “Subaccount” is not a native PowerMTA concept
Namun, PowerMTA dapat menandai virtualMTA, Pool MTA virtual, atau domain Pengirim-atau-Dari dengan ID subakun untuk tujuan pelaporan SparkPost.
Subaccount ID (number) FBL (event) Spam Complaint (event) Remote Bounce (event) Out-of-Band bounce (event)
Menyiapkan setidaknya satu alamat smtp-source-host juga memungkinkan SparkPost untuk dengan benar mengidentifikasi alamat IP pengirim sehingga terlihat pada peristiwa Injeksi dan Pengiriman, serta dalam tampilan laporan Ringkasan.
Nama pekerjaan diatur di PowerMTA melalui header dalam pesan yang diinjeksi. Selain memungkinkan kontrol pekerjaan individu (jeda/lanjutkan, dll) yang berguna, PowerMTA meneruskan nama-nama tersebut ke laporan Sinyal SparkPost sebagai “ID kampanye”. Lihat Panduan Pengguna bagian 12.8 “Melacak kampanye di PowerMTA dengan JobID”.
Ada beberapa hal yang perlu diperhatikan terkait penamaan pekerjaan. Meskipun SparkPost (dengan format JSON, dan pelarian JSON) memungkinkan karakter seperti <SPACE> dalam nama kampanye, header email lebih ketat. Karakter yang diperbolehkan dalam header X-Job adalah:
A-Za-z0-9!#$%&'()*+,-./:;<=>?@[\]^_{|}~
Dengan kata lain, karakter yang tidak diizinkan mencakup <SPACE>, tanda kutip ganda “ dan backtick `. Jika Anda terbiasa bekerja dengan nama X-Job, ini tidak akan membuat Anda terkejut, dan nama ID kampanye Anda akan “hanya berfungsi” pada pelaporan SparkPost. Jika seperti saya, Anda belajar SparkPost terlebih dahulu, Anda mungkin menginginkan alat untuk memastikan nilai X-Job Anda aman; lihat fitur bonus di akhir artikel ini.
Istilah PowerMTA | Istilah Sinyal SparkPost |
|---|---|
VirtualMTA | IP Pool |
Pool VirtualMTA | IP Pool (dikelompokkan) |
Nama Pekerjaan (header X-Job) | ID Kampanye |
smtp-source-host | Alamat IP Pengirim |
Domain Bounce | Identifikasi Domain Pengirim |
Domain Pengirim/Dari | Pelaporan Subakun / Tingkat Domain |
Menyiapkan nama Pool VirtualMTA PowerMTA dan nama Pekerjaan agar berarti dan dapat dibaca manusia sangat layak untuk dilakukan. Ini muncul langsung dalam aspek Sinyal SparkPost Anda dan laporan Ringkasan.
Seperti yang disebutkan sebelumnya, Anda tidak perlu membuat pool ini di akun SparkPost Anda. SparkPost mengambilnya dari konfigurasi PowerMTA Anda.
Inilah cara istilah konfigurasi PowerMTA diterjemahkan ke istilah SparkPost.
Istilah PowerMTA Istilah Laporan / Sinyal SparkPostDomain Penerima
(domain portion of “rcpt” field in Accounting file).Recipient Domain The domain portion of the “Sender” or “From” header in the message relayed by PowerMTA. (domain portion of “orig” in Accounting file).Sending Domain VirtualMTA (name)—VirtualMTA Pool (name) (“vmtaPool” in accounting file)IP Pool (name) smtp-source-host a.b.c.d (“dlvSourceIp” in accounting file)Sending IP a.b.c.d Job (name) (“jobId” in accounting file)Campaign ID (name)—Template (name) “Subaccount” is not a native PowerMTA concept
Namun, PowerMTA dapat menandai virtualMTA, Pool MTA virtual, atau domain Pengirim-atau-Dari dengan ID subakun untuk tujuan pelaporan SparkPost.
Subaccount ID (number) FBL (event) Spam Complaint (event) Remote Bounce (event) Out-of-Band bounce (event)
Menyiapkan setidaknya satu alamat smtp-source-host juga memungkinkan SparkPost untuk dengan benar mengidentifikasi alamat IP pengirim sehingga terlihat pada peristiwa Injeksi dan Pengiriman, serta dalam tampilan laporan Ringkasan.
Nama pekerjaan diatur di PowerMTA melalui header dalam pesan yang diinjeksi. Selain memungkinkan kontrol pekerjaan individu (jeda/lanjutkan, dll) yang berguna, PowerMTA meneruskan nama-nama tersebut ke laporan Sinyal SparkPost sebagai “ID kampanye”. Lihat Panduan Pengguna bagian 12.8 “Melacak kampanye di PowerMTA dengan JobID”.
Ada beberapa hal yang perlu diperhatikan terkait penamaan pekerjaan. Meskipun SparkPost (dengan format JSON, dan pelarian JSON) memungkinkan karakter seperti <SPACE> dalam nama kampanye, header email lebih ketat. Karakter yang diperbolehkan dalam header X-Job adalah:
A-Za-z0-9!#$%&'()*+,-./:;<=>?@[\]^_{|}~
Dengan kata lain, karakter yang tidak diizinkan mencakup <SPACE>, tanda kutip ganda “ dan backtick `. Jika Anda terbiasa bekerja dengan nama X-Job, ini tidak akan membuat Anda terkejut, dan nama ID kampanye Anda akan “hanya berfungsi” pada pelaporan SparkPost. Jika seperti saya, Anda belajar SparkPost terlebih dahulu, Anda mungkin menginginkan alat untuk memastikan nilai X-Job Anda aman; lihat fitur bonus di akhir artikel ini.
Istilah PowerMTA | Istilah Sinyal SparkPost |
|---|---|
VirtualMTA | IP Pool |
Pool VirtualMTA | IP Pool (dikelompokkan) |
Nama Pekerjaan (header X-Job) | ID Kampanye |
smtp-source-host | Alamat IP Pengirim |
Domain Bounce | Identifikasi Domain Pengirim |
Domain Pengirim/Dari | Pelaporan Subakun / Tingkat Domain |
Menyiapkan nama Pool VirtualMTA PowerMTA dan nama Pekerjaan agar berarti dan dapat dibaca manusia sangat layak untuk dilakukan. Ini muncul langsung dalam aspek Sinyal SparkPost Anda dan laporan Ringkasan.
Seperti yang disebutkan sebelumnya, Anda tidak perlu membuat pool ini di akun SparkPost Anda. SparkPost mengambilnya dari konfigurasi PowerMTA Anda.
Inilah cara istilah konfigurasi PowerMTA diterjemahkan ke istilah SparkPost.
Istilah PowerMTA Istilah Laporan / Sinyal SparkPostDomain Penerima
(domain portion of “rcpt” field in Accounting file).Recipient Domain The domain portion of the “Sender” or “From” header in the message relayed by PowerMTA. (domain portion of “orig” in Accounting file).Sending Domain VirtualMTA (name)—VirtualMTA Pool (name) (“vmtaPool” in accounting file)IP Pool (name) smtp-source-host a.b.c.d (“dlvSourceIp” in accounting file)Sending IP a.b.c.d Job (name) (“jobId” in accounting file)Campaign ID (name)—Template (name) “Subaccount” is not a native PowerMTA concept
Namun, PowerMTA dapat menandai virtualMTA, Pool MTA virtual, atau domain Pengirim-atau-Dari dengan ID subakun untuk tujuan pelaporan SparkPost.
Subaccount ID (number) FBL (event) Spam Complaint (event) Remote Bounce (event) Out-of-Band bounce (event)
Menyiapkan setidaknya satu alamat smtp-source-host juga memungkinkan SparkPost untuk dengan benar mengidentifikasi alamat IP pengirim sehingga terlihat pada peristiwa Injeksi dan Pengiriman, serta dalam tampilan laporan Ringkasan.
Nama pekerjaan diatur di PowerMTA melalui header dalam pesan yang diinjeksi. Selain memungkinkan kontrol pekerjaan individu (jeda/lanjutkan, dll) yang berguna, PowerMTA meneruskan nama-nama tersebut ke laporan Sinyal SparkPost sebagai “ID kampanye”. Lihat Panduan Pengguna bagian 12.8 “Melacak kampanye di PowerMTA dengan JobID”.
Ada beberapa hal yang perlu diperhatikan terkait penamaan pekerjaan. Meskipun SparkPost (dengan format JSON, dan pelarian JSON) memungkinkan karakter seperti <SPACE> dalam nama kampanye, header email lebih ketat. Karakter yang diperbolehkan dalam header X-Job adalah:
A-Za-z0-9!#$%&'()*+,-./:;<=>?@[\]^_{|}~
Dengan kata lain, karakter yang tidak diizinkan mencakup <SPACE>, tanda kutip ganda “ dan backtick `. Jika Anda terbiasa bekerja dengan nama X-Job, ini tidak akan membuat Anda terkejut, dan nama ID kampanye Anda akan “hanya berfungsi” pada pelaporan SparkPost. Jika seperti saya, Anda belajar SparkPost terlebih dahulu, Anda mungkin menginginkan alat untuk memastikan nilai X-Job Anda aman; lihat fitur bonus di akhir artikel ini.
Istilah PowerMTA | Istilah Sinyal SparkPost |
|---|---|
VirtualMTA | IP Pool |
Pool VirtualMTA | IP Pool (dikelompokkan) |
Nama Pekerjaan (header X-Job) | ID Kampanye |
smtp-source-host | Alamat IP Pengirim |
Domain Bounce | Identifikasi Domain Pengirim |
Domain Pengirim/Dari | Pelaporan Subakun / Tingkat Domain |
Acara FBL (Keluhan Spam) dan pantulan jarak jauh (di luar saluran)
PowerMTA dapat menerima dan memproses peristiwa FBL (dikenal di SparkPost sebagai peristiwa Keluhan Spam) dan pantulan jarak jauh (dikenal di SparkPost sebagai pantulan di luar jalur, karena balasannya datang kembali beberapa waktu setelahnya, daripada selama percakapan SMTP).
Ada artikel di Forum Dukungan Port25 tentang cara mengatur Prosesor Pantulan dan Prosesor FBL. Jika Anda adalah pengguna PowerMTA yang sudah ada, Anda mungkin sudah memiliki ini.
Ini adalah konfigurasi yang saya buat untuk demo, berdasarkan artikel-artikel ini dan berorientasi pada hosting PowerMTA di Amazon EC2.
Jika Anda sudah familiar dengan konfigurasi PowerMTA di area ini, Anda dapat melewati bagian ini, hingga garis horizontal berikutnya.
PowerMTA dapat menerima dan memproses peristiwa FBL (dikenal di SparkPost sebagai peristiwa Keluhan Spam) dan pantulan jarak jauh (dikenal di SparkPost sebagai pantulan di luar jalur, karena balasannya datang kembali beberapa waktu setelahnya, daripada selama percakapan SMTP).
Ada artikel di Forum Dukungan Port25 tentang cara mengatur Prosesor Pantulan dan Prosesor FBL. Jika Anda adalah pengguna PowerMTA yang sudah ada, Anda mungkin sudah memiliki ini.
Ini adalah konfigurasi yang saya buat untuk demo, berdasarkan artikel-artikel ini dan berorientasi pada hosting PowerMTA di Amazon EC2.
Jika Anda sudah familiar dengan konfigurasi PowerMTA di area ini, Anda dapat melewati bagian ini, hingga garis horizontal berikutnya.
PowerMTA dapat menerima dan memproses peristiwa FBL (dikenal di SparkPost sebagai peristiwa Keluhan Spam) dan pantulan jarak jauh (dikenal di SparkPost sebagai pantulan di luar jalur, karena balasannya datang kembali beberapa waktu setelahnya, daripada selama percakapan SMTP).
Ada artikel di Forum Dukungan Port25 tentang cara mengatur Prosesor Pantulan dan Prosesor FBL. Jika Anda adalah pengguna PowerMTA yang sudah ada, Anda mungkin sudah memiliki ini.
Ini adalah konfigurasi yang saya buat untuk demo, berdasarkan artikel-artikel ini dan berorientasi pada hosting PowerMTA di Amazon EC2.
Jika Anda sudah familiar dengan konfigurasi PowerMTA di area ini, Anda dapat melewati bagian ini, hingga garis horizontal berikutnya.
Konfigurasi injeksi
Kami akan menggunakan port 587 untuk pesan yang disuntikkan, yang akan datang melalui Internet publik dari host lain. Kami perlu menghentikan aktor jahat yang menemukan dan menyalahgunakan layanan ini, jadi kami menerapkan otentikasi nama pengguna/kata sandi dan TLS opsional, mirip dengan titik akhir suntikan SMTP SparkPost.
Kami ingin dapat mengirim pesan dari sumber yang terautentikasi dengan benar ke tujuan mana pun. Kami juga menginginkan pendengar terpisah di port 25 untuk FBL dan respons bounce jarak jauh yang tidak memerlukan otentikasi.
# IP address(es) and port(s) on which to listen for incoming SMTP connections smtp-listener 0.0.0.0:587 smtp-listener 0.0.0.0:25
Dalam deklarasi <source> berikut, kami menggunakan otentikasi nama pengguna/kata sandi dan TLS opsional untuk melindungi dari suntikan pesan yang jahat. Kami juga menetapkan batas laju pada koneksi yang melakukan percobaan kata sandi yang gagal.
Pengaturan Anda mungkin berbeda; misalnya, jika Anda memiliki jaringan pribadi antara penyuntik dan PowerMTA, Anda tidak perlu otentikasi kata sandi.
# One source rule for all injection, internal or external. Enforce auth, except for bounces and FBLs # <source 0/0> log-connections false log-commands false # WARNING: verbose! just for dev log-data false # WARNING: even more verbose! smtp-service true # allow SMTP service smtp-max-auth-failure-rate 1/min allow-unencrypted-plain-auth false allow-starttls true rewrite-list mfrom </source> <source {auth}> always-allow-relaying yes # only if the auth succeeds default-virtual-mta default process-x-job true </source>
Deklarasi <source {auth}> (lihat di sini. v5.0) berlaku setelah otentikasi berhasil. Di sini, ia memungkinkan pengiriman lebih lanjut, mengatur grup virtual MTA default untuk digunakan, dan menambahkan header X-Job (yang akan dilaporkan oleh SparkPost Signals sebagai campaign_id).
Daftar penulisan memetakan pesan yang disuntikkan untuk menggunakan domain MAIL FROM tertentu (alias domain bounce atau Return-Path:).
# # Rewrite the MAIL FROM address to match the bounce domain # <rewrite-list mfrom> mail-from *@pmta.signalsdemo.trymsys.net *@bounces.pmta.signalsdemo.trymsys.net </rewrite-list>
Kemudian kami mengatur konfigurasi TLS dan nama pengguna / kata sandi SMTP kami, sesuai dengan rekomendasi terkini.
# # Secure the inbound service with username, password and TLS. SMT 2020-06-15 # smtp-server-tls-certificate /etc/pmta/pmtasignalsdemo.pem smtp-server-tls-allow-tlsv1 false smtp-server-tls-allow-tlsv1.1 false smtp-server-tls-allow-tlsv1.2 true smtp-server-tls-allow-tlsv1.3 true # # SMTP users (authenticated via SMTP AUTH) # <smtp-user SMTP_Injection> password ##PUT YOUR PASSWORD HERE## authentication-method password </smtp-user>
Kami dapat memeriksa bahwa TLS v1.0 (tidak aman, tidak disarankan lagi) tidak diterima menggunakan alat uji SMTP favorit saya, swaks.
swaks --server pmta.signalsdemo.trymsys.net --port 587 \ --to test@trymsys.net \ --from any@sparkpost.com \ --tls \ --tls-protocol tlsv1
Kami melihat:
*** TLS startup failed (connect(): error:00000000:lib(0):func(0):reason(0)) *** STARTTLS attempted but failed
Sama halnya untuk –tls-protocol tlsv1_1.
Kita juga harus menerapkan penandatanganan DKIM pada pesan keluar kami, karena ini adalah praktik yang baik (Saya mengikuti instruksi ini untuk menyiapkan kunci).
# # DKIM # domain-key mypmta, pmta.signalsdemo.trymsys.net, /etc/pmta/mypmta.pmta.signalsdemo.trymsys.net.pem
Kami akan menggunakan port 587 untuk pesan yang disuntikkan, yang akan datang melalui Internet publik dari host lain. Kami perlu menghentikan aktor jahat yang menemukan dan menyalahgunakan layanan ini, jadi kami menerapkan otentikasi nama pengguna/kata sandi dan TLS opsional, mirip dengan titik akhir suntikan SMTP SparkPost.
Kami ingin dapat mengirim pesan dari sumber yang terautentikasi dengan benar ke tujuan mana pun. Kami juga menginginkan pendengar terpisah di port 25 untuk FBL dan respons bounce jarak jauh yang tidak memerlukan otentikasi.
# IP address(es) and port(s) on which to listen for incoming SMTP connections smtp-listener 0.0.0.0:587 smtp-listener 0.0.0.0:25
Dalam deklarasi <source> berikut, kami menggunakan otentikasi nama pengguna/kata sandi dan TLS opsional untuk melindungi dari suntikan pesan yang jahat. Kami juga menetapkan batas laju pada koneksi yang melakukan percobaan kata sandi yang gagal.
Pengaturan Anda mungkin berbeda; misalnya, jika Anda memiliki jaringan pribadi antara penyuntik dan PowerMTA, Anda tidak perlu otentikasi kata sandi.
# One source rule for all injection, internal or external. Enforce auth, except for bounces and FBLs # <source 0/0> log-connections false log-commands false # WARNING: verbose! just for dev log-data false # WARNING: even more verbose! smtp-service true # allow SMTP service smtp-max-auth-failure-rate 1/min allow-unencrypted-plain-auth false allow-starttls true rewrite-list mfrom </source> <source {auth}> always-allow-relaying yes # only if the auth succeeds default-virtual-mta default process-x-job true </source>
Deklarasi <source {auth}> (lihat di sini. v5.0) berlaku setelah otentikasi berhasil. Di sini, ia memungkinkan pengiriman lebih lanjut, mengatur grup virtual MTA default untuk digunakan, dan menambahkan header X-Job (yang akan dilaporkan oleh SparkPost Signals sebagai campaign_id).
Daftar penulisan memetakan pesan yang disuntikkan untuk menggunakan domain MAIL FROM tertentu (alias domain bounce atau Return-Path:).
# # Rewrite the MAIL FROM address to match the bounce domain # <rewrite-list mfrom> mail-from *@pmta.signalsdemo.trymsys.net *@bounces.pmta.signalsdemo.trymsys.net </rewrite-list>
Kemudian kami mengatur konfigurasi TLS dan nama pengguna / kata sandi SMTP kami, sesuai dengan rekomendasi terkini.
# # Secure the inbound service with username, password and TLS. SMT 2020-06-15 # smtp-server-tls-certificate /etc/pmta/pmtasignalsdemo.pem smtp-server-tls-allow-tlsv1 false smtp-server-tls-allow-tlsv1.1 false smtp-server-tls-allow-tlsv1.2 true smtp-server-tls-allow-tlsv1.3 true # # SMTP users (authenticated via SMTP AUTH) # <smtp-user SMTP_Injection> password ##PUT YOUR PASSWORD HERE## authentication-method password </smtp-user>
Kami dapat memeriksa bahwa TLS v1.0 (tidak aman, tidak disarankan lagi) tidak diterima menggunakan alat uji SMTP favorit saya, swaks.
swaks --server pmta.signalsdemo.trymsys.net --port 587 \ --to test@trymsys.net \ --from any@sparkpost.com \ --tls \ --tls-protocol tlsv1
Kami melihat:
*** TLS startup failed (connect(): error:00000000:lib(0):func(0):reason(0)) *** STARTTLS attempted but failed
Sama halnya untuk –tls-protocol tlsv1_1.
Kita juga harus menerapkan penandatanganan DKIM pada pesan keluar kami, karena ini adalah praktik yang baik (Saya mengikuti instruksi ini untuk menyiapkan kunci).
# # DKIM # domain-key mypmta, pmta.signalsdemo.trymsys.net, /etc/pmta/mypmta.pmta.signalsdemo.trymsys.net.pem
Kami akan menggunakan port 587 untuk pesan yang disuntikkan, yang akan datang melalui Internet publik dari host lain. Kami perlu menghentikan aktor jahat yang menemukan dan menyalahgunakan layanan ini, jadi kami menerapkan otentikasi nama pengguna/kata sandi dan TLS opsional, mirip dengan titik akhir suntikan SMTP SparkPost.
Kami ingin dapat mengirim pesan dari sumber yang terautentikasi dengan benar ke tujuan mana pun. Kami juga menginginkan pendengar terpisah di port 25 untuk FBL dan respons bounce jarak jauh yang tidak memerlukan otentikasi.
# IP address(es) and port(s) on which to listen for incoming SMTP connections smtp-listener 0.0.0.0:587 smtp-listener 0.0.0.0:25
Dalam deklarasi <source> berikut, kami menggunakan otentikasi nama pengguna/kata sandi dan TLS opsional untuk melindungi dari suntikan pesan yang jahat. Kami juga menetapkan batas laju pada koneksi yang melakukan percobaan kata sandi yang gagal.
Pengaturan Anda mungkin berbeda; misalnya, jika Anda memiliki jaringan pribadi antara penyuntik dan PowerMTA, Anda tidak perlu otentikasi kata sandi.
# One source rule for all injection, internal or external. Enforce auth, except for bounces and FBLs # <source 0/0> log-connections false log-commands false # WARNING: verbose! just for dev log-data false # WARNING: even more verbose! smtp-service true # allow SMTP service smtp-max-auth-failure-rate 1/min allow-unencrypted-plain-auth false allow-starttls true rewrite-list mfrom </source> <source {auth}> always-allow-relaying yes # only if the auth succeeds default-virtual-mta default process-x-job true </source>
Deklarasi <source {auth}> (lihat di sini. v5.0) berlaku setelah otentikasi berhasil. Di sini, ia memungkinkan pengiriman lebih lanjut, mengatur grup virtual MTA default untuk digunakan, dan menambahkan header X-Job (yang akan dilaporkan oleh SparkPost Signals sebagai campaign_id).
Daftar penulisan memetakan pesan yang disuntikkan untuk menggunakan domain MAIL FROM tertentu (alias domain bounce atau Return-Path:).
# # Rewrite the MAIL FROM address to match the bounce domain # <rewrite-list mfrom> mail-from *@pmta.signalsdemo.trymsys.net *@bounces.pmta.signalsdemo.trymsys.net </rewrite-list>
Kemudian kami mengatur konfigurasi TLS dan nama pengguna / kata sandi SMTP kami, sesuai dengan rekomendasi terkini.
# # Secure the inbound service with username, password and TLS. SMT 2020-06-15 # smtp-server-tls-certificate /etc/pmta/pmtasignalsdemo.pem smtp-server-tls-allow-tlsv1 false smtp-server-tls-allow-tlsv1.1 false smtp-server-tls-allow-tlsv1.2 true smtp-server-tls-allow-tlsv1.3 true # # SMTP users (authenticated via SMTP AUTH) # <smtp-user SMTP_Injection> password ##PUT YOUR PASSWORD HERE## authentication-method password </smtp-user>
Kami dapat memeriksa bahwa TLS v1.0 (tidak aman, tidak disarankan lagi) tidak diterima menggunakan alat uji SMTP favorit saya, swaks.
swaks --server pmta.signalsdemo.trymsys.net --port 587 \ --to test@trymsys.net \ --from any@sparkpost.com \ --tls \ --tls-protocol tlsv1
Kami melihat:
*** TLS startup failed (connect(): error:00000000:lib(0):func(0):reason(0)) *** STARTTLS attempted but failed
Sama halnya untuk –tls-protocol tlsv1_1.
Kita juga harus menerapkan penandatanganan DKIM pada pesan keluar kami, karena ini adalah praktik yang baik (Saya mengikuti instruksi ini untuk menyiapkan kunci).
# # DKIM # domain-key mypmta, pmta.signalsdemo.trymsys.net, /etc/pmta/mypmta.pmta.signalsdemo.trymsys.net.pem
Pengaturan dan penamaan VirtualMTA
PowerMTA VirtualMTAs (dan pool VirtualMTA) adalah fitur yang kuat untuk mengelola aliran pesan, dan fitur pelaporan PowerMTA / SparkPost Signals bekerja paling baik dengan ini aktif.
# # Route all outgoing traffic through this virtual mta / pool. # # Declare the delivery IP address here, so that SparkPost signals ingest injection (aka "reception") events # will carry the correct sending_IP attribute # <virtual-mta mta1> smtp-source-host 172.31.25.101 pmta.signalsdemo.trymsys.net </virtual-mta> <virtual-mta-pool default> virtual-mta mta1 <domain *> max-smtp-out 20 # max. connections *per domain* bounce-after 4d12h # 4 days, 12 hours retry-after 10m # 10 minutes dkim-sign yes </domain> </virtual-mta-pool>
Pengaturan virtual-mta-pool dilaporkan di SparkPost sebagai “IP Pool”, dan tersedia sebagai faktor pelaporan SparkPost Signals (menu drop-down di bawah grafik).

Laporan Ringkasan juga menunjukkan IP Pool sebagai faktor pelaporan “Group By”.

Seperti yang disebutkan sebelumnya dalam artikel ini, menetapkan setidaknya satu alamat smtp-source-host juga memungkinkan SparkPost untuk mengidentifikasi alamat IP pengirim dengan benar, sehingga muncul di peristiwa Injeksi dan Pengiriman, serta di Laporan Ringkasan:

Itu saja yang Anda butuhkan untuk membuat integrasi dasar bekerja antara PowerMTA dan SparkPost Signals. Anda akan menemukan contoh file konfigurasi lengkap di sini.
Sebelum Anda pergi, inilah fitur bonus yang saya sebutkan.
PowerMTA VirtualMTAs (dan pool VirtualMTA) adalah fitur yang kuat untuk mengelola aliran pesan, dan fitur pelaporan PowerMTA / SparkPost Signals bekerja paling baik dengan ini aktif.
# # Route all outgoing traffic through this virtual mta / pool. # # Declare the delivery IP address here, so that SparkPost signals ingest injection (aka "reception") events # will carry the correct sending_IP attribute # <virtual-mta mta1> smtp-source-host 172.31.25.101 pmta.signalsdemo.trymsys.net </virtual-mta> <virtual-mta-pool default> virtual-mta mta1 <domain *> max-smtp-out 20 # max. connections *per domain* bounce-after 4d12h # 4 days, 12 hours retry-after 10m # 10 minutes dkim-sign yes </domain> </virtual-mta-pool>
Pengaturan virtual-mta-pool dilaporkan di SparkPost sebagai “IP Pool”, dan tersedia sebagai faktor pelaporan SparkPost Signals (menu drop-down di bawah grafik).

Laporan Ringkasan juga menunjukkan IP Pool sebagai faktor pelaporan “Group By”.

Seperti yang disebutkan sebelumnya dalam artikel ini, menetapkan setidaknya satu alamat smtp-source-host juga memungkinkan SparkPost untuk mengidentifikasi alamat IP pengirim dengan benar, sehingga muncul di peristiwa Injeksi dan Pengiriman, serta di Laporan Ringkasan:

Itu saja yang Anda butuhkan untuk membuat integrasi dasar bekerja antara PowerMTA dan SparkPost Signals. Anda akan menemukan contoh file konfigurasi lengkap di sini.
Sebelum Anda pergi, inilah fitur bonus yang saya sebutkan.
PowerMTA VirtualMTAs (dan pool VirtualMTA) adalah fitur yang kuat untuk mengelola aliran pesan, dan fitur pelaporan PowerMTA / SparkPost Signals bekerja paling baik dengan ini aktif.
# # Route all outgoing traffic through this virtual mta / pool. # # Declare the delivery IP address here, so that SparkPost signals ingest injection (aka "reception") events # will carry the correct sending_IP attribute # <virtual-mta mta1> smtp-source-host 172.31.25.101 pmta.signalsdemo.trymsys.net </virtual-mta> <virtual-mta-pool default> virtual-mta mta1 <domain *> max-smtp-out 20 # max. connections *per domain* bounce-after 4d12h # 4 days, 12 hours retry-after 10m # 10 minutes dkim-sign yes </domain> </virtual-mta-pool>
Pengaturan virtual-mta-pool dilaporkan di SparkPost sebagai “IP Pool”, dan tersedia sebagai faktor pelaporan SparkPost Signals (menu drop-down di bawah grafik).

Laporan Ringkasan juga menunjukkan IP Pool sebagai faktor pelaporan “Group By”.

Seperti yang disebutkan sebelumnya dalam artikel ini, menetapkan setidaknya satu alamat smtp-source-host juga memungkinkan SparkPost untuk mengidentifikasi alamat IP pengirim dengan benar, sehingga muncul di peristiwa Injeksi dan Pengiriman, serta di Laporan Ringkasan:

Itu saja yang Anda butuhkan untuk membuat integrasi dasar bekerja antara PowerMTA dan SparkPost Signals. Anda akan menemukan contoh file konfigurasi lengkap di sini.
Sebelum Anda pergi, inilah fitur bonus yang saya sebutkan.
Fitur bonus: Pemeriksaan/penyaringan nama X-Jobs
Untuk memastikan setiap string karakter aman untuk digunakan sebagai nama X-Job PowerMTA, berikut adalah fungsi Python sederhana untuk memetakan karakter-karakter yang tidak aman ke garis bawah “_”
import re def pmtaSafeJobID(s): """ :param s: str :return: str Map an arbitrary campaign ID string into allowed chars for PMTA X-Job header. See https://download.port25.com/files/UsersGuide-5.0.html#tracking-a-campaign-in-powermta-with-a-jobid Specifically disallow <sp> " ` but allow through most other chars. """ # Note have to escape ' - [ ] and double-escape \ - see https://docs.python.org/3/library/re.html disallowedChars = '[^A-Za-z0-9!#$%&\'()*+,\-./:;<=>?@$begin:math:display$\\\\\\\\$end:math:display$^_{|}~]' return re.sub(disallowedChars, '_', s)
Ini menggunakan ekspresi reguler Python dengan cara tertentu. Ini menyatakan himpunan karakter yang dilarang dengan menggunakan operator “komplemen himpunan” ^ daripada mencantumkan semua karakter yang diizinkan. Itu berarti kita menangkap (dan membuat aman) karakter di luar himpunan 7-bit biasa. Kita dapat menunjukkan itu menggunakan potongan tes ini:
s='' for i in range(32, 256): s += chr(i) print(pmtaSafeJobID(s))
Memberikan
!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^abcdefghijklmnopqrstuvwxyz{|}~_________________________________________________________
Anda dapat melihat bahwa <SPACE>, tanda kutip ganda “, dan backtick `, serta semua karakter di luar ~ dipetakan ke garis bawah.
Untuk memastikan setiap string karakter aman untuk digunakan sebagai nama X-Job PowerMTA, berikut adalah fungsi Python sederhana untuk memetakan karakter-karakter yang tidak aman ke garis bawah “_”
import re def pmtaSafeJobID(s): """ :param s: str :return: str Map an arbitrary campaign ID string into allowed chars for PMTA X-Job header. See https://download.port25.com/files/UsersGuide-5.0.html#tracking-a-campaign-in-powermta-with-a-jobid Specifically disallow <sp> " ` but allow through most other chars. """ # Note have to escape ' - [ ] and double-escape \ - see https://docs.python.org/3/library/re.html disallowedChars = '[^A-Za-z0-9!#$%&\'()*+,\-./:;<=>?@$begin:math:display$\\\\\\\\$end:math:display$^_{|}~]' return re.sub(disallowedChars, '_', s)
Ini menggunakan ekspresi reguler Python dengan cara tertentu. Ini menyatakan himpunan karakter yang dilarang dengan menggunakan operator “komplemen himpunan” ^ daripada mencantumkan semua karakter yang diizinkan. Itu berarti kita menangkap (dan membuat aman) karakter di luar himpunan 7-bit biasa. Kita dapat menunjukkan itu menggunakan potongan tes ini:
s='' for i in range(32, 256): s += chr(i) print(pmtaSafeJobID(s))
Memberikan
!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^abcdefghijklmnopqrstuvwxyz{|}~_________________________________________________________
Anda dapat melihat bahwa <SPACE>, tanda kutip ganda “, dan backtick `, serta semua karakter di luar ~ dipetakan ke garis bawah.
Untuk memastikan setiap string karakter aman untuk digunakan sebagai nama X-Job PowerMTA, berikut adalah fungsi Python sederhana untuk memetakan karakter-karakter yang tidak aman ke garis bawah “_”
import re def pmtaSafeJobID(s): """ :param s: str :return: str Map an arbitrary campaign ID string into allowed chars for PMTA X-Job header. See https://download.port25.com/files/UsersGuide-5.0.html#tracking-a-campaign-in-powermta-with-a-jobid Specifically disallow <sp> " ` but allow through most other chars. """ # Note have to escape ' - [ ] and double-escape \ - see https://docs.python.org/3/library/re.html disallowedChars = '[^A-Za-z0-9!#$%&\'()*+,\-./:;<=>?@$begin:math:display$\\\\\\\\$end:math:display$^_{|}~]' return re.sub(disallowedChars, '_', s)
Ini menggunakan ekspresi reguler Python dengan cara tertentu. Ini menyatakan himpunan karakter yang dilarang dengan menggunakan operator “komplemen himpunan” ^ daripada mencantumkan semua karakter yang diizinkan. Itu berarti kita menangkap (dan membuat aman) karakter di luar himpunan 7-bit biasa. Kita dapat menunjukkan itu menggunakan potongan tes ini:
s='' for i in range(32, 256): s += chr(i) print(pmtaSafeJobID(s))
Memberikan
!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^abcdefghijklmnopqrstuvwxyz{|}~_________________________________________________________
Anda dapat melihat bahwa <SPACE>, tanda kutip ganda “, dan backtick `, serta semua karakter di luar ~ dipetakan ke garis bawah.



