Takeaways Key
Saya pasti anda tahu apa yang saya maksudkan. Anda fikir anda telah menetapkan aplikasi anda dalam beberapa jenis mod debug. Memandangkan itu, anda memulakan ujian anda, yang menghantar beban e -mel dari permohonan anda. Sementara itu, anda berasa selesa dalam pengetahuan bahawa tiada siapa tetapi anda akan melihatnya.
Ujian anda lulus, anda mengucapkan tahniah kepada diri sendiri, dan teruskan. Tidak lama kemudian, anda menerima sebaliknya, katakan saja
terse , panggilan Skype dari pelanggan anda. Dia agak marah kerana pelanggannya telah berdering, bertanya mengapa mereka telah menerima e -mel ganjil dari syarikatnya. Dia tidak gembira dan mahu jawapan?
ada di sana? Tidak mahu berada di sana lagi? Saya rasa anda tidak. Inilah penyelesaian - Mailcatcher. Jika anda tidak biasa dengannya, Mailcatcherterdengar seperti penyelesaian yang baik? Tidak kira jika anda letih, di bawah tekanan, baru dalam pasukan, atau hanya perlu menjalankan ujian - Mailcatcher akan memastikan bahawa tiada e -mel yang pernah dihantar ke luar rangkaian anda, atau di luar mesin maya pembangunan anda.... menjalankan pelayan SMTP super mudah yang menangkap sebarang mesej yang dihantar kepadanya untuk dipaparkan dalam antara muka web. Jalankan Mailcatcher, tetapkan aplikasi kegemaran anda untuk dihantar ke SMTP: //127.0.0.1: 1025 dan bukan pelayan SMTP lalai anda, kemudian lihat http://127.0.0.1:1080 untuk melihat mel yang tiba setakat ini.
Dalam siaran ini, saya akan menunjukkan kepada anda bagaimana untuk menetapkannya dan berjalan melalui antara muka apabila e -mel telah ditangkap olehnya.
mesin maya pra-siap
<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>
vagrant up
mailcatcher , sendmail dan nginx dipasang.
nginx mempunyai persediaan vhost mudah, yang memetakan direktori projek ke/var/www/pada mesin maya. Jika anda ingin tahu dengan tepat apa yang berlaku semasa peruntukan, peruntukan checkout.sh.secara manual memasang mailcatcher
<span>sudo apt-get install -y vim curl python-software-properties lynx nginx </span><span>sudo apt-get install -y php5-fpm php5-memcache memcached php-apc </span><span>sudo apt-get install -y build-essential libsqlite3-dev ruby1.9.3 </span><span>sudo gem install mailcatcher </span><span>sudo mailcatcher --http-ip 0.0.0.0</span>
Nota: Jika anda mengikuti proses permulaan Mailcatcher standard, ia hanya akan mendengar di IP 127.0.0.1, dan port 1025. Dengan persediaan ini, kami tidak dapat melihatnya dari mesin tuan rumah. Oleh itu, saya telah menambah IP awam pada mesin maya, 192.168.56.111 dan menukar konfigurasi Mailcatcher supaya ia mendengar semua IPS.
The Mailcatcher Web UI
Ia adalah antara muka yang cukup mudah, menyenaraikan e -mel dalam barisan Mailcatcher, apabila tersedia, di bahagian atas. Apabila terdapat e -mel dalam senarai, pane bawah melakukan tugas yang baik untuk menunjukkan maklumat tentang mereka, yang akan kita lihat kemudian.
Untuk artikel ini, saya telah mencipta skrip PHP yang mudah, index.php, yang terdapat dalam repositori projek, dan boleh diakses di http://192.168.56.111. Ia menggunakan Swiftmailer untuk menyambung ke Mailcatcher dan menghantar e -mel pada beban. Anda dapat melihat dalam kod di bawah halaman HTML yang agak standard.
<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>
Ia termasuk mel-loader.php, yang boleh didapati di bawah.
vagrant up
Jika anda tidak biasa dengan artikel Swiftmailer Aurelio di sini di SitePoint memberikan pengenalan yang sangat baik. Secara kebetulan, ia adalah kodnya yang saya gunakan untuk contoh ini. Terima kasih Aurelio.
Pada dasarnya, hanya ada satu baris yang penting untuk kita perhatikan, yang berikut:
<span>sudo apt-get install -y vim curl python-software-properties lynx nginx </span><span>sudo apt-get install -y php5-fpm php5-memcache memcached php-apc </span><span>sudo apt-get install -y build-essential libsqlite3-dev ruby1.9.3 </span><span>sudo gem install mailcatcher </span><span>sudo mailcatcher --http-ip 0.0.0.0</span>
Ini mewujudkan sambungan ke pelayan Mailcatcher yang baru saja kami sediakan. Itu sahaja, tidak ada yang mewah! Saya kini telah memuat semula halaman tiga kali, yang telah menghantar tiga e -mel. Anda dapat melihat bahawa mereka disenaraikan dalam Mailcatcher dalam imej di bawah.
melalui tab ketiga, kita boleh menggunakan Fractal untuk menganalisis kandungan e -mel kami. Saya akan melangkau hari ini kerana ia berada di luar skop artikel ini.
kita semua ditetapkan
kita boleh menulis ujian untuk mengesahkan bahawa kod tersebut berfungsi sebagaimana mestinya. Kami boleh menyemak aliran kerja menghantar mel, semak kandungan mesej, penerima, tajuk dan sebagainya. Ia seperti praktikal kerana ia mendapat, tanpa benar -benar menghantar apa -apa di luar persekitaran kita.
Sekarang kita boleh yakin bahawa pelanggan kami (dan pelanggan mereka) tidak akan menerima sebarang e -mel yang tidak pernah dimaksudkan untuk mereka. Apa kelegaan.
membungkusSekarang, ini adalah contoh yang agak remeh, hanya menggunakan coretan kod Swiftmailer yang mudah untuk contohnya. Saya yakin bahawa codebase anda jauh lebih kompleks dan canggih daripada contoh ini.
Adakah anda sudah menggunakan Mailcatcher? Apakah pengalaman anda untuk mengintegrasikannya? Adakah terdapat masalah yang tidak menyedari anda? Kongsi pendapat anda dalam komen.
Memasang Mailcatcher adalah proses yang mudah. Pertama, anda perlu memastikan bahawa anda mempunyai Ruby dan Rubygem yang dipasang pada sistem anda. Sebaik sahaja anda mempunyai prasyarat ini, anda boleh memasang MailCatcher dengan menjalankan perintah GEM Pasang mailcatcher di terminal anda. Selepas pemasangan selesai, anda boleh memulakan Mailcatcher dengan menjalankan perintah Mailcatcher di terminal anda. Anda kini harus dapat mengakses antara muka web mailcatcher di http: // localhost: 1080.
Jika anda menghadapi masalah dengan Mailcatcher, langkah pertama adalah untuk memeriksa output di terminal anda untuk sebarang mesej ralat. Mesej -mesej ini sering dapat memberikan petunjuk tentang apa yang salah. Sekiranya anda menghadapi masalah menghantar e -mel, pastikan tetapan SMTP aplikasi anda dikonfigurasi dengan betul untuk menunjuk kepada pelayan SMTP Mailcatcher. Mailcatcher dengan pelbagai projek. Selagi setiap projek dikonfigurasikan untuk menghantar e -mel ke pelayan SMTP yang sama (iaitu, pelayan SMTP Mailcatcher), Mailcatcher akan menangkap e -mel dari semua projek ini.
Anda boleh menghentikan pelayan Mailcatcher dengan menekan Ctrl C di terminal di mana anda memulakan Mailcatcher. Sebagai alternatif, jika anda memulakan Mailcatcher sebagai proses latar belakang, anda boleh menghentikannya dengan menjalankan perintah Killall Mailcatcher.Atas ialah kandungan terperinci Debugging e -mel dengan Mailcatcher. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!