Rumah > pembangunan bahagian belakang > tutorial php > Debugging e -mel dengan Mailcatcher

Debugging e -mel dengan Mailcatcher

Jennifer Aniston
Lepaskan: 2025-02-21 11:15:09
asal
453 orang telah melayarinya

Debugging e -mel dengan Mailcatcher

anda menggunakan e -mel dalam aplikasi anda, bukan? Ok, itulah soalan retorik. Sudah tentu anda lakukan. Walaupun e -mel berusia lebih dari 30 tahun, ia masih merupakan aplikasi yang paling popular di planet ini, setakat ini. Berikut adalah beberapa statistik dari Pingdom, untuk 2012:

    2.2 bilion - Bilangan pengguna e -mel di seluruh dunia
  • 144 bilion - Jumlah trafik e -mel setiap hari di seluruh dunia
  • 4.3 bilion - Bilangan pelanggan e -mel di seluruh dunia pada tahun 2012
mengejutkan!

Takeaways Key

    MailCatcher adalah alat yang berguna untuk pemaju yang membolehkan anda menguji fungsi e -mel dalam aplikasi anda tanpa menghantar e -mel ke alamat sebenar. Ia menjalankan pelayan SMTP yang mudah yang menangkap sebarang mesej yang dihantar kepadanya dan memaparkannya dalam antara muka web.
  • UI Web Mailcatcher adalah mudah dan berkesan, menyenaraikan e -mel dalam barisan dan memberikan maklumat terperinci mengenai mereka. Ini cara terbaik untuk mengesahkan bahawa kod anda berfungsi sebagaimana mestinya dan aliran kerja menghantar mel berfungsi dengan betul.
  • Menyediakan Mailcatcher melibatkan memasangnya pada mesin maya atau mesin Linux anda dan mengkonfigurasi aplikasi anda untuk menghantar e -mel ke pelayan Mailcatcher. Artikel ini memberikan arahan terperinci dan kod sampel untuk proses ini.
  • Penting untuk diperhatikan bahawa Mailcatcher tidak direka untuk digunakan dalam persekitaran pengeluaran. Ia adalah alat pembangunan yang dimaksudkan untuk digunakan dalam persekitaran pembangunan tempatan. Menggunakannya dalam persekitaran pengeluaran boleh membawa kepada e -mel yang hilang dan isu -isu lain.
tetapi mengapa artikel lain di e -mel?

untuk satu sebab mudah, yang kita mungkin semua telah ditangkap pada satu titik atau yang lain. Kerana kita perlu menguji, hampir dengan pengeluaran seperti yang kita boleh, tetapi tanpa menghantar e -mel kepada pelanggan kita secara tidak sengaja, dan mereka akibatnya menjadi keliru atau kecewa, atau malu bahawa pelanggan mereka telah menerima e -mel ujian.

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, Mailcatcher

... 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.

terdengar 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.

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

Untuk menjimatkan banyak masalah untuk mendapatkan Mailcatcher yang disediakan, saya telah membuat kotak vagrant adat yang melakukan semuanya untuk anda. Pastikan anda mempunyai VirtualBox dan Vagrant dipasang, kemudian klon salinan repositori artikel menggunakan arahan berikut:

<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>
Salin selepas log masuk
Salin selepas log masuk
Kemudian, dalam direktori projek klon, jalankan perintah berikut:

vagrant up
Salin selepas log masuk
Salin selepas log masuk
Ini akan melancarkan proses penyediaan mesin maya, memaparkan banyak output apabila proses peruntukan berjalan. Mesin maya yang dikonfigurasikan agak minimalis. Ia mempunyai

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

Jika anda ingin memasang mailcatcher sendiri, dan anda mempunyai mesin maya (atau mesin Linux yang tersedia), berikut adalah langkah -langkah untuk dijalankan:

<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>
Salin selepas log masuk
Salin selepas log masuk
anda mungkin atau mungkin tidak perlu menjalankan perintah ketiga. Saya lakukan kerana saya menggunakan gambar Ubuntu yang sangat minimalis 64 imej vagrant, yang memerlukan pakej untuk membina Mailcatcher. Harap maklum bahawa jika anda berada di taburan atau versi Linux yang berbeza, nama pakej individu mungkin berbeza.

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

Sekarang anda akan dapat melihat UI Web Mailcatcher di http://192.168.56.111:1080. Ia akan kelihatan seperti gambar di bawah:

Debugging e -mel dengan Mailcatcher 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.

Contoh kod

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>
Salin selepas log masuk
Salin selepas log masuk

Ia termasuk mel-loader.php, yang boleh didapati di bawah.

vagrant up
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk

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.

Debugging e -mel dengan Mailcatcher

Saya telah mengklik pada entri pertama, yang menunjukkan butiran yang diterima, dari, dan subjek, serta badan e -mel. Jika kita beralih ke tab Sumber, seperti dalam imej di bawah, kita dapat melihat butiran e -mel mentah:

Debugging e -mel dengan Mailcatcher 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

Dengan yang dilakukan, kita kini boleh membuat e -mel seperti yang kita lakukan, menetapkan penerima, subjek, lampiran dan sebagainya, seperti yang saya ada di atas, dan tahu bahawa mereka tidak akan benar -benar pergi ke alamat sebenar.

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.

membungkus

Sekarang, 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.

Tetapi saya yakin bahawa dalam aplikasi anda, anda akan mempunyai debug dan ujian konfigurasi yang tersedia, di mana anda boleh menetapkan hos dan pelabuhan dengan sewajarnya, membezakannya dari secara langsung. Dengan berbuat demikian, tidak ada kod lain yang perlu berubah, dan anda boleh meraih faedah dari Peace of Mind Mailcatcher membawa.

Adakah anda sudah menggunakan Mailcatcher? Apakah pengalaman anda untuk mengintegrasikannya? Adakah terdapat masalah yang tidak menyedari anda? Kongsi pendapat anda dalam komen.

soalan yang sering ditanya mengenai mailcatcher

Bagaimana saya memasang mailcatcher pada sistem saya?

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.

Bagaimana saya mengkonfigurasi permohonan saya untuk menggunakan mailcatcher? Tetapan SMTP aplikasi anda untuk menunjuk kepada pelayan SMTP Mailcatcher. Pelayan berjalan pada localhost dan mendengar pada port 1025. Proses yang tepat untuk menetapkan nilai -nilai ini bergantung pada bahasa dan kerangka aplikasi anda, tetapi secara umum, anda perlu menetapkan alamat SMTP ke 'localhost' dan port SMTP ke '1025 '.

Bolehkah saya menggunakan Mailcatcher dalam persekitaran pengeluaran? Ia adalah alat pembangunan yang dimaksudkan untuk digunakan dalam persekitaran pembangunan tempatan. Menggunakan Mailcatcher dalam persekitaran pengeluaran boleh membawa kepada e -mel yang hilang dan isu -isu lain. Untuk persekitaran pengeluaran, anda harus menggunakan pelayan SMTP yang mantap, siap sedia. Telah memulakan pelayan MailCatcher, mana -mana e -mel yang dihantar oleh aplikasi anda akan ditangkap oleh MailCatcher dan dipaparkan dalam antara muka webnya. Anda boleh mengakses antara muka ini dengan menavigasi ke http: // localhost: 1080 dalam pelayar web anda. Di sini, anda akan melihat senarai semua e -mel yang ditangkap oleh Mailcatcher, dan anda boleh mengklik mana -mana e -mel untuk melihat kandungannya. semudah mengklik butang 'jelas' dalam antara muka web mailcatcher. Ini akan mengeluarkan semua e -mel dari antara muka. Sila ambil perhatian bahawa sebaik sahaja e -mel dibersihkan, mereka tidak dapat dipulihkan. Terdapat imej Docker yang tersedia termasuk Mailcatcher, dan anda juga boleh membuat Dockerfile anda sendiri untuk memasukkan Mailcatcher dalam persediaan Docker anda. Apabila menjalankan Mailcatcher dalam bekas Docker, anda perlu memastikan bahawa port yang sesuai didedahkan supaya aplikasi anda dapat menyambung ke pelayan SMTP Mailcatcher.

Bagaimana saya menyelesaikan masalah dengan Mailcatcher?

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.

Bolehkah saya menyesuaikan rupa dan rasa antara muka web mailcatcher? Rasa antara muka web mailcatcher tidak disesuaikan daripada kotak. Walau bagaimanapun, kerana Mailcatcher adalah sumber terbuka, anda berpotensi mengubah suai kod sumber untuk menyesuaikan antara muka. Sila ambil perhatian bahawa ini memerlukan pemahaman yang baik tentang Ruby dan Rangka Kerja Web Sinatra, yang Mailcatcher dibina dengan.

Atas ialah kandungan terperinci Debugging e -mel dengan Mailcatcher. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan