cari
Rumahpembangunan bahagian belakangtutorial phpDebugging e -mel dengan Mailcatcher

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>
Kemudian, dalam direktori projek klon, jalankan perintah berikut:

vagrant up
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>
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>

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.

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
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
Bagaimana anda boleh menyemak sama ada sesi PHP sudah bermula?Bagaimana anda boleh menyemak sama ada sesi PHP sudah bermula?Apr 30, 2025 am 12:20 AM

Dalam PHP, anda boleh menggunakan session_status () atau session_id () untuk memeriksa sama ada sesi telah bermula. 1) Gunakan fungsi session_status (). Jika php_session_active dikembalikan, sesi telah dimulakan. 2) Gunakan fungsi session_id (), jika rentetan tidak kosong dikembalikan, sesi telah dimulakan. Kedua -dua kaedah ini dapat memeriksa keadaan sesi dengan berkesan, dan memilih kaedah yang hendak digunakan bergantung pada versi PHP dan keutamaan peribadi.

Huraikan senario di mana menggunakan sesi adalah penting dalam aplikasi web.Huraikan senario di mana menggunakan sesi adalah penting dalam aplikasi web.Apr 30, 2025 am 12:16 AM

Sessionsarevitalinwebapplications, terutamanya-commercePlatforms.theymaintainuserdataacrossrequests, crucialforshoppingcarts, pengesahan, andpersonalization.inflask, SessionscanbeimplementedusingsImplecodetomanageusloginsanddateristence.

Bagaimanakah anda dapat mengurus akses sesi serentak di PHP?Bagaimanakah anda dapat mengurus akses sesi serentak di PHP?Apr 30, 2025 am 12:11 AM

Menguruskan akses sesi serentak dalam PHP boleh dilakukan dengan kaedah berikut: 1. Gunakan pangkalan data untuk menyimpan data sesi, 2 menggunakan redis atau memcached, 3. Melaksanakan strategi mengunci sesi. Kaedah ini membantu memastikan konsistensi data dan meningkatkan prestasi konkurensi.

Apakah batasan menggunakan sesi PHP?Apakah batasan menggunakan sesi PHP?Apr 30, 2025 am 12:04 AM

PhpsessionsHaveSeverallimitations: 1) storageConstraintscanleadtoperformanceissues; 2) SecurityVulnerabilityLikeSessionFixationAttackSexist; 3) ScalabilityIschallengingDuetoserver-SpecificStorage;

Terangkan bagaimana pengimbangan beban mempengaruhi pengurusan sesi dan bagaimana mengatasinya.Terangkan bagaimana pengimbangan beban mempengaruhi pengurusan sesi dan bagaimana mengatasinya.Apr 29, 2025 am 12:42 AM

Beban mengimbangi mempengaruhi pengurusan sesi, tetapi dapat diselesaikan dengan replikasi sesi, ketegangan sesi, dan penyimpanan sesi berpusat. 1. Sesi Replikasi Salinan Data Sesi Antara Pelayan. 2. Sesi Stickiness mengarahkan permintaan pengguna ke pelayan yang sama. 3. Penyimpanan Sesi Pusat menggunakan pelayan bebas seperti Redis untuk menyimpan data sesi untuk memastikan perkongsian data.

Terangkan konsep penguncian sesi.Terangkan konsep penguncian sesi.Apr 29, 2025 am 12:39 AM

Sessionlockingisatechniqueusedtoensureauserererersessionremainsexclusivetooneuseratatime.IScrucialFreventingDataCorruptionSandsecuritybreachesinmulti-userapplications.SessionLockingISimplementedusingserverververveChan

Adakah terdapat alternatif untuk sesi PHP?Adakah terdapat alternatif untuk sesi PHP?Apr 29, 2025 am 12:36 AM

Alternatif untuk sesi PHP termasuk kuki, pengesahan berasaskan token, sesi berasaskan pangkalan data, dan redis/memcached. 1.Cookies Menguruskan sesi dengan menyimpan data pada klien, yang mudah tetapi rendah dalam keselamatan. 2. Pengesahan berasaskan token menggunakan token untuk mengesahkan pengguna, yang sangat selamat tetapi memerlukan logik tambahan. 3.Database-berasaskan data menyimpan data dalam pangkalan data, yang mempunyai skalabilitas yang baik tetapi boleh menjejaskan prestasi. 4. Redis/Memcached menggunakan cache yang diedarkan untuk meningkatkan prestasi dan skalabiliti, tetapi memerlukan pemadanan tambahan

Tentukan istilah 'sesi rampasan' dalam konteks PHP.Tentukan istilah 'sesi rampasan' dalam konteks PHP.Apr 29, 2025 am 12:33 AM

SessionHijacking merujuk kepada penyerang yang menyamar sebagai pengguna dengan mendapatkan sessionId pengguna. Kaedah pencegahan termasuk: 1) menyulitkan komunikasi menggunakan HTTPS; 2) mengesahkan sumber sessionId; 3) menggunakan algoritma generasi sesi yang selamat; 4) Secara kerap mengemas kini sessionId.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!