Debugging e -mel dengan Mailcatcher
- 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
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.
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, 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
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>
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
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>
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:
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>
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
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.
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.
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 '.
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Dalam php, kata laluan_hash dan kata laluan 1) password_hash menjana hash yang mengandungi nilai garam untuk meningkatkan keselamatan. 2) Kata Laluan_verify Sahkan kata laluan dan pastikan keselamatan dengan membandingkan nilai hash. 3) MD5 dan SHA1 terdedah dan kekurangan nilai garam, dan tidak sesuai untuk keselamatan kata laluan moden.

Jenis PHP meminta untuk meningkatkan kualiti kod dan kebolehbacaan. 1) Petua Jenis Skalar: Oleh kerana Php7.0, jenis data asas dibenarkan untuk ditentukan dalam parameter fungsi, seperti INT, Float, dan lain -lain. 2) Return Type Prompt: Pastikan konsistensi jenis nilai pulangan fungsi. 3) Jenis Kesatuan Prompt: Oleh kerana Php8.0, pelbagai jenis dibenarkan untuk ditentukan dalam parameter fungsi atau nilai pulangan. 4) Prompt jenis yang boleh dibatalkan: membolehkan untuk memasukkan nilai null dan mengendalikan fungsi yang boleh mengembalikan nilai null.

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

Menggunakan penyataan preprocessing dan PDO dalam PHP secara berkesan dapat mencegah serangan suntikan SQL. 1) Gunakan PDO untuk menyambung ke pangkalan data dan tetapkan mod ralat. 2) Buat kenyataan pra -proses melalui kaedah menyediakan dan lulus data menggunakan ruang letak dan laksanakan kaedah. 3) Hasil pertanyaan proses dan pastikan keselamatan dan prestasi kod.

PHP menggunakan sambungan MySQLI dan PDO untuk berinteraksi dalam operasi pangkalan data dan pemprosesan logik sisi pelayan, dan memproses logik sisi pelayan melalui fungsi seperti pengurusan sesi. 1) Gunakan MySQLI atau PDO untuk menyambung ke pangkalan data dan laksanakan pertanyaan SQL. 2) Mengendalikan permintaan HTTP dan status pengguna melalui pengurusan sesi dan fungsi lain. 3) Gunakan urus niaga untuk memastikan atomik operasi pangkalan data. 4) Mencegah suntikan SQL, gunakan pengendalian pengecualian dan sambungan penutup untuk debugging. 5) Mengoptimumkan prestasi melalui pengindeksan dan cache, tulis kod yang sangat mudah dibaca dan lakukan pengendalian ralat.

PHP digunakan untuk membina laman web dinamik, dan fungsi terasnya termasuk: 1. Menjana kandungan dinamik dan menghasilkan laman web secara real time dengan menyambung dengan pangkalan data; 2. Proses Interaksi Pengguna dan Penyerahan Bentuk, Sahkan Input dan Menanggapi Operasi; 3. Menguruskan sesi dan pengesahan pengguna untuk memberikan pengalaman yang diperibadikan; 4. Mengoptimumkan prestasi dan ikuti amalan terbaik untuk meningkatkan kecekapan dan keselamatan laman web.

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.
