pengembangan-web-mp.com

Bagaimana cara mengirim email dan menghindarinya agar tidak diklasifikasikan sebagai spam?

Ini adalah pertanyaan kanonik tentang cara menangani email yang dikirim dari server Anda dengan kesalahan klasifikasi sebagai spam. Untuk informasi tambahan, Anda mungkin menemukan pertanyaan serupa ini bermanfaat:

Terkadang saya ingin mengirim nawala ke pelanggan saya. Masalahnya adalah, beberapa email tertangkap sebagai pesan spam. Sebagian besar oleh Outlook di klien (bahkan di Outlook 2007 saya sendiri).

Sekarang saya ingin tahu apa yang harus dilakukan untuk membuat email "baik". Saya tahu tentang pencarian balik dll., Tetapi (misalnya), bagaimana dengan tautan berhenti berlangganan dengan ID unik? Apakah itu meningkatkan peringkat spam?

84
kcode

Pastikan bahwa email Anda tidak terlihat seperti email spam biasa: jangan hanya menyisipkan gambar besar; periksa bahwa rangkaian karakter diatur dengan benar; jangan menyisipkan tautan “alamat IP saja”. Tulis komunikasi Anda sebagaimana Anda akan menulis email biasa. Buat sangat mudah untuk berhenti berlangganan atau keluar. Jika tidak, pengguna Anda akan berhenti berlangganan dengan menekan tombol "spam", dan itu akan memengaruhi reputasi Anda.

Di sisi teknis: jika Anda dapat memilih server SMTP Anda, pastikan itu adalah server SMTP "bersih". Alamat IP dari server SMTP yang melakukan spam seringkali masuk daftar hitam oleh penyedia lain. Jika Anda tidak mengetahui server SMTP Anda sebelumnya, merupakan praktik yang baik untuk memberikan opsi konfigurasi di aplikasi Anda untuk mengontrol ukuran batch dan menunda antar batch. Beberapa server email tidak menerima batch pengiriman dalam jumlah besar atau aktivitas berkelanjutan.

Gunakan metode autentikasi email, seperti SPF , dan Kunci Domain untuk membuktikan bahwa email Anda dan nama domain Anda menjadi satu. Efek samping yang bagus adalah Anda membantu mencegah bahwa domain email Anda dipalsukan. Juga centang Anda balikkan DNS untuk memastikan alamat IP server surat Anda menunjuk ke nama domain yang Anda gunakan untuk mengirim email.

Pastikan alamat balasan untuk email Anda adalah alamat yang ada dan valid. Gunakan nama asli penerima yang lengkap di bidang Kepada, bukan hanya alamat email (mis. "John Doe" <[email protected]>) dan pantau akun penyalahgunaan Anda, seperti [email protected] dan [email protected] .

83
splattne

Berhenti berlangganan penerima pesan Anda secara otomatis yang alamat emailnya terpental, dan buat loop umpan balik keluhan dengan penyedia email utama dan secara otomatis berhenti berlangganan penerima yang melaporkan pesan Anda sebagai spam/sampah. Ini akan sangat membantu meningkatkan reputasi dan kemampuan pengiriman Anda.

22
wg

Pertanyaan ini menyebutkan bahwa dasar-dasarnya sudah ada, tetapi ketika kita mengarahkan orang lain untuk ini sebagai Pertanyaan Canonical, saya hanya ingin memastikan bahwa kami menutupi basis kami.

Minimum ini pada dasarnya diperlukan hari ini:

  1. Pastikan Anda memiliki DNS maju dan mundur yang dikonfigurasi dengan benar. Server mail harus mengidentifikasi dirinya dalam pertukaran HELO/EHLO, nama itu harus mencari ke IP yang digunakan server. Demikian pula, pencarian balik IP tersebut harus mengembalikan nama.

  2. Pastikan server Anda benar-benar mengirim nama host di jabat tangan itu. Server Anda seharusnya tidak mengirim alamat IP.

  3. Pastikan alamat IP Anda tidak pada DNSRBL (daftar hitam) apa pun. Jika ya, segera selesaikan.

  4. Periksa reputasi IP Anda dengan layanan reputasi yang lebih populer (SenderScore adalah yang besar saat ini, tetapi itu mungkin tidak bertahan lama). Layanan ini umumnya memiliki panduan untuk meningkatkan reputasi Anda, tetapi bukan "go/no-go" langsung seperti RBL.

  5. Jangan memalsukan tajuk, jangan membohongi tajuk, dan pastikan Anda menyertakan tajuk minimum dalam pesan (Date dan From diperlukan, harus ada Subject, Sender, Reply-To, dan To/Cc/Bcc [sebagaimana berlaku]). Ini adalah salah satu hewan peliharaan terbesar saya dengan buletin yang valid yang ingin saya terima berakhir di Sampah karena mereka memalsukan tajuk Outlook Express, mengabaikan tanggal, atau yang serupa.

Secara opsional Anda harus mempertimbangkan pengaturan SPF, DKIM, dan DMARC. Ini membantu pengiriman, tetapi tidak diperlukan (bukan oleh sebagian besar server email).

15
Chris S

Sayangnya ada banyak teknik penyaringan yang berbeda dan beberapa penyedia surat besar tidak akan mempublikasikan apa yang mereka gunakan dan/atau bobot apa yang diberikan untuk berbagai tes/filter, jadi sulit untuk mengetahui bagaimana cara melewatinya. Pada dasarnya spam telah mendorong ISP dan pengguna ke situasi di mana mereka kadang-kadang menyulitkan pesan yang sah (terutama pesan massal seperti buletin Anda) untuk dilewati. Saya tidak lagi menganggap email sebagai metode transportasi setengah jalan yang dapat diandalkan seperti dulu.

Menjadi sedikit kurang negatif dan lebih bermanfaat ... Karena Anda mengalami masalah khusus dengan klien tertentu, mungkin ada hal-hal yang dapat diceritakan program kepada Anda. Saya tidak tahu secara spesifik tentang Outlook karena saya sendiri tidak menggunakannya di mana pun, tetapi banyak filter surat menyuntikkan header ke dalam pesan untuk mendaftar filter apa yang digunakan, apa hasilnya, dan apa bobot yang diberikan untuk filter itu. Jadi, jika Anda melihat sumber lengkap dari pesan mereka dipindahkan ke folder sampah Anda mungkin menemukan petunjuk yang berguna. Sebagai contoh, filter berbasis SpamAssassin menyuntikkan header dari formulir berikut:

X-Spam-Flag: YES
X-Spam-Score: 13.371
X-Spam-Level: *************
X-Spam-Status: Yes, score=13.371 tagged_above=-10 required=5.4
    tests=[BAYES_99=3.5, FB_GET_MEDS=0.803, RCVD_IN_SORBS_WEB=0.619,
    RCVD_IN_XBL=3.033, RDNS_NONE=0.1, URIBL_AB_SURBL=1.86,
    URIBL_BLACK=1.955, URIBL_JP_SURBL=1.501]

(contoh itu telah dipetik dari pesan spam asli di tumpukan sampah saya)

Ini tidak pasti meskipun penyaringan bayesian dan metode lain yang melibatkan pelatihan pengguna adalah hal yang umum - jadi apa yang disaring dan gagal oleh filter Anda mungkin berbeda secara nyata dengan orang lain meskipun klien telah dikonfigurasikan secara identik di luar kebiasaan. Anda mungkin harus mempertimbangkan outlet lain untuk berita Anda (banyak orang mencoba menggunakan protokol jejaring sosial untuk ini, dengan berbagai tingkat keberhasilan).

11
David Spillett

Seperti kata orang lain, Anda ingin menghindari "tampak" seperti pesan spam saat mengirim email tetapi Anda tidak dapat selalu mengatakan apa yang akan atau tidak akan membuat Anda terlihat seperti spam karena tekniknya bervariasi.

Satu hal yang Anda mungkin ingin pertimbangkan adalah mengirim email teks biasa ke pelanggan Anda untuk setiap buletin yang sebenarnya berisi deskripsi/salam cepat diikuti oleh "klik di sini untuk melihat buletin terbaru kami!" pesan; dengan cara itu Anda dapat meng-host pesan Anda di server web, Anda mengurangi ukuran email (dan memuat di server email Anda) dan sebagai bonus Anda dapat memeriksa log di server web Anda untuk mendapatkan umpan balik pada berapa banyak pelanggan sebenarnya membaca pesan Anda vs. menghapusnya.

9
Bart Silverstrim

Solusi terperinci untuk menghindari email diidentifikasi sebagai spam dan/atau tidak diterima penerima

Contoh situasi: Anda memiliki server yang menjalankan PHP situs web untuk example.com Yang perlu mengirim email Dan Anda perhatikan bahwa email Anda tidak selalu terkirim. (Masalah besar jika Anda seorang pemilik toko, dan pelanggan tidak menerima email setelah pembelian!).

Jika Anda mengikuti semua langkah berikut, ini harus menyelesaikan 99,9% masalah. (Saya pertama kali berpikir itu mungkin untuk dilakukan hanya beberapa dari mereka, dan melewatkan DKIM misalnya, tetapi akhirnya mereka semua diminta untuk menyelesaikan semua masalah yang saya miliki).

  1. Pertama-tama, siapa yang mengirim email?

    Ketika PHP kode Anda mengirim email, sering kali dengan terkenal PHP fungsi mail(...). Tapi apa fungsi ini lakukan, di bawah tenda ? Mari kita jalankan halaman test.php Yang berisi <?php echo ini_get('sendmail_path'); ?>. Anda akan mendapatkan contoh: /usr/sbin/sendmail -t -i. Kabar baiknya, sekarang kita tahu program mana benar-benar menangani email!
    Sekarang info rumit: nama sendmail bisa berbagai program . Bahkan jika Anda melihat sendmail pada langkah sebelumnya, Anda mungkin memiliki sendmail atau postfix atau exim , atau qmail, dll. diinstal. Mari kita lakukan dpkg -S /usr/sbin/sendmail. Jawabannya adalah postfix: /usr/sbin/sendmail, Ok ini berarti kita sudah menginstal postfix.

  2. Lihat di file log /var/mail/www-data Untuk mengetahui email mana yang belum terkirim dengan benar, dan mengapa. Ini mungkin berguna untuk langkah selanjutnya.

  3. Seperti yang disebutkan di blog Jeff Atwood , saatnya untuk melihat catatan PTR terbalik. (Lebih detail untuk ditambahkan di sini).

  4. Tambahkan baris berikut di file konfigurasi postfix /etc/postfix/main.cf:

    inet_protocols=ipv4
    

    Kemudian mulai kembali postfix dengan service restart postfix. Mengapa? Karena saya punya masalah seperti ini ketika penerima gmail:

    Sistem kami telah mendeteksi bahwa pesan ini tidak 550-5.7.1 tidak memenuhi pedoman pengiriman IPv6 tentang catatan PTR dan otentikasi 550-5.7.1. Harap tinjau 550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error untuk informasi lebih lanjut 550 5.7.1.

    The solusi termudah kemudian hanya mengganti postfix ke ipv4, jadi langkah ini 4 (yang mana mungkin tidak perlu bagi Anda?).

  5. Catatan DNS SPF . Untuk membuktikan bahwa Anda diizinkan mengirim email dari @example.com, Anda dapat menambahkan catatan SPF dalam catatan DNS domain example.com. Saya menemukan suatu tempat yang The DNS record type 99 (SPF) has been deprecated, jadi kami menggunakan catatan TXT sebagai gantinya. Mari kita tambahkan ini sebagai TXT catatan DNS (lihat juga catatan 1):

    v=spf1 a mx include:_spf.google.com include:sendgrid.net ~all
    

    Mengapa ini termasuk? Karena server saya tidak akan menjadi satu-satunya yang mengirim email dari @ example.com! Saya mengonfigurasikan Gmail ke Kirim email sebagai [email protected] ( lihat tangkapan layar di sini ), menggunakan penyedia SMTP tepercaya Sendgrid . Jika saya tidak menambahkan ini include:, Gmail tidak akan diizinkan untuk mengirim email dari @example.com.

  6. [~ # ~] dkim [~ # ~] tanda tangan digital. Sebagaimana disebutkan di sini , tujuan DKIM adalah untuk memastikan bahwa konten surat tidak dirusak selama pengiriman. Ini adalah proses instalasi di Ubuntu (panduan bermanfaat di sini juga):

    • apt-get install opendkim opendkim-tools

    • Buat kunci (Anda juga dapat membuat kunci dan DNS yang relevan TXT catatan dengan http://dkimcore.org/tools/ ):

      mkdir /etc/opendkim
      cd /etc/opendkim
      opendkim-genkey -t -s mail -d example.com
      
    • Mari kita letakkan ini di /etc/opendkim.conf:

      Syslog                 yes
      Domain                 *
      KeyFile                /etc/opendkim/mail.private
      Selector               mail
      AutoRestart            yes
      Background             yes
      Canonicalization       relaxed/relaxed
      DNSTimeout             5
      Mode                   sv
      SubDomains             no
      

      ini di /etc/default/opendkim:

      SOCKET="inet:[email protected]" # Ubuntu default - listen on loopback on port 8891
      

      dan akhirnya menambahkan ini di akhir file konfigurasi postfix /etc/postfix/main.cf:

      # DKIM
      milter_default_action = accept
      milter_protocol = 2
      smtpd_milters = inet:localhost:8891
      non_smtpd_milters = inet:localhost:8891
      
    • Sekarang mari kita tambahkan kunci publik (ditemukan dalam /etc/opendkim/mail.txt) Ke catatan DNS domain Anda:

      mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=OqYHd...waPaQAX"
      

      Begini tampilannya dengan pendaftar saya Namelynx:

    • Langkah terakhir untuk DKIM: mulai ulang layanan email dengan service restart opendkim ; service restart postfix.

  7. Uji apakah semuanya berfungsi. Metode termudah adalah mengirim email melalui PHP ke [email protected] ( alat yang sangat berguna ini disediakan oleh Port25 Solutions):

    $emailfrom = "Example <[email protected]>";
    $headers  = "MIME-Version: 1.0 \n";
    $headers .= "Content-Transfer-Encoding: 8bit \n";
    $headers .= "Content-type: text/plain; charset=utf-8\n";
    $headers .= "Reply-To: " . $emailfrom . "\n";
    $headers .= "From: " . $emailfrom . "\n";
    $headers .= "Bcc: [email protected]\n";
    mail("[email protected]", "Hello", "Hello!", $headers);
    

    Kemudian lihat jawaban alat ini, seharusnya terlihat seperti ini:

    ==========================================================
    Summary of Results
    ==========================================================
    SPF check:          pass
    DKIM check:         pass
    SpamAssassin check: ham
    

    Layanan mail-tester.com juga bermanfaat.

  8. (Opsional) Coba postmaster.google.com. Saya menggunakannya tetapi saya tidak ingat apakah itu membantu atau tidak.

  9. Jika masih tidak berhasil , solusinya bisa dengan melakukan outsourcing email dengan solusi profesional, untuk menghindari berhari-hari (tidak berhasil) debugging. Di Sini adalah artikel yang bagus tentang ini. Berikut ini adalah kutipannya: "Mengirim email dari aplikasi Anda dapat dilakukan. Separuh dari waktu, pesan yang dikirim dari server Anda sendiri baru saja dibuang ke folder sampah penerima." yang saya sedih ditemukan benar, setelah berminggu-minggu tweaker.


Catatan tambahan:

(1)

-all : Fail: All mail servers not listed in the SPF record are explicitly not authorized to send mail using the sender’s domain.
~all : Soft Fail: All mail servers not listed in the SPF record are not authorized to send mail using the sender’s domain, but the owner of the domain is unwilling to make a strong assertion to that effect.
?all : Neutral: The domain controller cannot or does not want to assert whether or not all mail servers not listed in the SPF record are authorized to send mail using the sender’s domain.
+all : Pass: All mail servers are authorized to send mail on behalf of the sender’s domain.
7
Basj

Bisnis online saya mengalami masalah dengan konfirmasi email yang dikirim ke spam atau bahkan tidak terkirim (dijauhi melalui server mail). Ini adalah email sederhana "berikut ringkasan pesanan Anda" dengan satu tautan ke domain situs kami. Kami akhirnya membeli beberapa akun Google Apps untuk bisnis saya. Anda dapat mengatur salah satunya untuk bertindak sebagai server SMTP Anda. Memiliki Google sebagai pengirim email kami menghentikan semua masalah ini.

Sejauh buletin email, pasti menggunakan layanan yang menangani opt-in/-out untuk Anda. Menggunakan siapa pun selain layanan untuk mengirim surat massal mungkin akan membuat Anda diblokir.

6
Chris K

Ada panduan baru yang telah diterbitkan di Kotak Masuk email

Yang paling komprehensif yang pernah saya lihat. Daftar periksa 43 titik berbeda yang mencakup setiap faucet tentang cara menghindari ditandai sebagai spam. Itu terus diperbarui.

Dari mengatur DNS, Mengkonfigurasi Otentikasi, Menyiapkan pemantauan reputasi, Mengurangi rasio pentalan Anda, Menguji Konten Email Anda, dll.

Head to tails cakupan segalanya oleh ZeroBounce.NET

https://www.zerobounce.net/guide-to-improve-inbox-and-delivery.html

1
Henry