MailCatcher рдХреЗ рд╕рд╛рде рдИрдореЗрд▓ рдбрд┐рдмрдЧрд┐рдВрдЧ

рдЫрд╡рд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдИрдореЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд╣реИ рдирд╛? рдпрд╣, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдЕрд▓рдВрдХрд╛рд░рд┐рдХ рдкреНрд░рд╢реНрди рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣ 30 рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рдЙрдореНрд░ рдХреА рд╣реИ, рдФрд░ рдпрд╣ рдЕрднреА рднреА рдЧреНрд░рд╣ рдкрд░ рд╕рдВрдЪрд╛рд░ рдХрд╛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рд╛рдзрди рд╣реИред рдпрд╣рд╛рдБ Phatt рдХреЗ рдХреБрдЫ рдЖрдБрдХрдбрд╝реЗ рджрд┐рдП рдЧрдП рд╣реИрдВ:



рдмрд╣реБрдд рдЦреВрдм!



рдЗрд╕ рд▓реЗрдЦ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?



рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рд╕рднреА рдПрдХ рд░рд╛рд╕реНрддреЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░ рдЖрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдпрдерд╛рд╕рдВрднрд╡ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдХреЛрдИ рднреА рддреНрд░реБрдЯрд┐ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддреА рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХ рдкрд░реАрдХреНрд╖рдг рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдпрд╣ рджреБрдЦрдж рд╣реЛрдЧрд╛ред



рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ рдЖрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рд░рдЦрд╛ рд╣реИ, рдЖрдк рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рд╕реЗ рдкрддреНрд░ рднреЗрдЬрддрд╛ рд╣реИред рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рднреА рдЗрди рдкрддреНрд░реЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦреЗрдЧрд╛ред



рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рдЦреБрдж рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдПрдХ рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рд╡рд╣ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдЧреНрд░рд╛рд╣рдХ рдЕрдЬреАрдм рдереЗред рд╡рд╣ рдкрд░реЗрд╢рд╛рди рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рдкрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред



рдХреНрдпрд╛ рдРрд╕рд╛ рдерд╛? рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ - MailCatcher ред рдпрджрд┐ рдЖрдкрдиреЗ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ, рддреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:

... рдПрдХ рд╕реБрдкрд░-рд╕рд░рд▓ рдПрд╕рдПрдордЯреАрдкреА рд╕рд░реНрд╡рд░ рдЬреЛ рдХрд┐рд╕реА рднреА рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдкрдиреА рдРрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдореЗрд▓рдХреИрдЪрд░ рдЪрд▓рд╛рдПрдВ, smtp://127.0.0.1:1025



рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ smtp://127.0.0.1:1025



рдбрд┐рдлрд╝реЙрд▓реНрдЯ SMTP рд╕рд░реНрд╡рд░ рдХреЗ рдмрдЬрд╛рдп, рдФрд░ рдлрд┐рд░ рдЙрд╕ рдореЗрд▓ рдХреЛ рджреЗрдЦреЗрдВ рдЬрд┐рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛
127.0.0.1:1080







рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд╣реИ рдирд╛? рдЪрд╛рд╣реЗ рдЖрдк рдердХреЗ рд╣реБрдП рд╣реЛрдВ, рдУрд╡рд░рд╡рд░реНрдХ рдХрд┐рдП рдЧрдП рд╣реЛрдВ, рдЪрд╛рд╣реЗ рдЯреАрдо рдореЗрдВ рдХреЛрдИ рдирд╡рд╛рдЧрдВрддреБрдХ рд╣реЛ рдпрд╛ рдХреБрдЫ рдФрд░, MailCatcher рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдИрдореЗрд▓ рдЖрдкрдХреЗ рдиреЗрдЯрд╡рд░реНрдХ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдкрдХреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рднреАрддрд░ рдмрдиреА рд░рд╣реЗред



рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ MailCatcher рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░, рд░рди рдФрд░ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред



рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рддреИрдпрд╛рд░ рдХреА



рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП MailCatcher рдХреЗ рд╕рд╛рде рдПрдХ рд╡реИрдЧреНрд░реЗрдВрдЯ рдмреЙрдХреНрд╕ рдмрдирд╛рдпрд╛ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Vagrant рдФрд░ VirtualBox рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ рдФрд░ рдирд┐рдореНрди рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рднрдВрдбрд╛рд░ рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ:

 git clone git@github.com:sitepoint-examples/mailcatcher-article.git
      
      





рдлрд┐рд░, рдкрд░рд┐рдгрд╛рдореА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 vagrant up
      
      





рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛рдлреА рдиреНрдпреВрдирддрд░ рд╣реИрдВ, рдкреИрдХреЗрдЬ рдореЗрдВ MailCatcher, Sendmail рдФрд░ Nginx рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рд▓рдЧрднрдЧред рдкреНрд░рддрд┐ред: рдпрджрд┐ рдЖрдк рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрдпреВрдкреЗрдкреЗрдЯ ( рдпрд╣ рдХреНрдпрд╛ рд╣реИ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд▓рдХреИрдЪрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЗрд╕рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдФрд░ рдЕрдиреНрдп рдЙрдкрд╣рд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛, рдореИрдВ рд╕реБрдЭрд╛рддрд╛ рд╣реВрдВред




рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд MailCatcher



рдпрджрд┐ рдЖрдк MailCatcher рдХреЛ рд╕реНрд╡рдпрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдХрдорд╛рдВрдб рдХрд╛ рдХреНрд░рдо рд╣реИ:

 sudo apt-get install -y vim curl python-software-properties lynx nginx sudo apt-get install -y php5-fpm php5-memcache memcached php-apc sudo apt-get install -y build-essential libsqlite3-dev ruby1.9.3 sudo gem install mailcatcher sudo mailcatcher --http-ip 0.0.0.0
      
      





рдЖрдкрдХреЛ рддреАрд╕рд░реЗ рдЖрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдмрдВрдЯреВ рд╕рдЯреАрдХ 64 рдХреА рдХрд╛рдлреА рдиреНрдпреВрдирддрдо рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рдереЗред рдпрджрд┐ рдЖрдк рдПрдХ рдЕрд▓рдЧ рд╡рд┐рддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреИрдХреЗрдЬ рдФрд░ рдЙрдирдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрд░реЛрдХреНрдд рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред



рдиреЛрдЯред рдПрдХ рдорд╛рдирдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рд╛рде, MailCatcher рдХреЗрд╡рд▓ рдЖрдИрдкреА 127.0.0.1 рдФрд░ рдкреЛрд░реНрдЯ 1025 рдХреЛ рд╕реБрдиреЗрдЧрд╛, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдмрд╛рд╣рд░ рд╕реЗ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗред рдореИрдВрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓ рджрд┐рдпрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╕рднреА рдЖрдИрдкреА рдкрддреЗ рд╕реБрдиреЗ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА 192.168.56.111 рдЬреЛрдбрд╝реЗред



MailCatcher рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕



рдЕрдм рдЦрддреНрдо рд╣реЛ рд░рд╣рд╛ рд╣реИ 192.168.56.111:1080



192.168.56.111:1080



рдЖрдк рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

MailCatcher рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕

рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрд▓реНрдХрд┐ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ, рдЗрд╕рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ MailCatcher рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдИрдореЗрд▓ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдЬрдм рд╕реВрдЪреА рдореЗрдВ рдкрддреНрд░ рд╣реЛрдВрдЧреЗ, рддреЛ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдмрд╕реЗ рдиреАрдЪреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧреА, рдЬрд┐рд╕реЗ рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рджреЗрдЦреЗрдВрдЧреЗред



рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ



рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рд╣реИ, index.php, рдпрд╣ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдЙрдкрд▓рдмреНрдз рд╣реИ 192.168.56.111



192.168.56.111



ред рдкрддреНрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрд╡рд┐рдлреНрдЯрдореЗрд▓рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

 <?php require_once('mail-loader.php'); ?> <html> <head> <title>Simple MailCatcher PHP Example</title> </head> <body> <h1>Simple MailCatcher PHP Example</h1> <p>This application sends a number of emails which will be caught by MailCatcher. To check them, view them in <a href="http://192.168.56.111:1080/" target="_blank">the local MailCatcher installation</a></p> </body> </html>
      
      





рдпрд╣, рдмрджрд▓реЗ рдореЗрдВ, mail-loader.php



:

 <?php require('vendor/autoload.php'); $email = 'matthew@example.com'; $subject = 'testing'; $message = 'test message'; $transport = Swift_SmtpTransport::newInstance( "localhost", 1025 ); $message = Swift_Message::newInstance(); $message->setTo(array( "matthew@maltblue.com" => "Matthew Setter", )); $message->setSubject( "This email is sent using Swift Mailer" ); $message->setBody("You're our best client ever."); $message->setFrom("matthew@localhost", "Your bank"); $mailer = Swift_Mailer::newInstance($transport); $mailer->send($message, $failedRecipients); print_r($failedRecipients);
      
      







рдпрджрд┐ рдЖрдк рд╕реНрд╡рд┐рдлреНрдЯрдореЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдирдП рд╣реИрдВ, рддреЛ рд╕рд╛рдЗрдЯрдкреНрд╡рд╛рдЗрдВрдЯ рдкрд░ рдСрд░реЗрд▓рд┐рдпреЛ рдХрд╛ рд▓реЗрдЦ рдЗрд╕рдХреА рдЦреЛрдЬ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫреА рд╢реБрд░реБрдЖрдд рд╣реЛрдЧреАред рд╡реИрд╕реЗ, рдпрд╣ рдЙрд╕рдХрд╛ рдХреЛрдб рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж, рдСрд░реЗрд▓рд┐рдпреЛ



рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреЛрдб рдХреА рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:

 $transport = Swift_SmtpTransport::newInstance( "localhost", 1025 );
      
      





рдпрд╣ MailCatcher smtp рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рддрд╛ рд╣реИ, рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред 3 рдЕрдХреНрд╖рд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрдЬ рдХреЛ 3 рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░реЗрдВред рдпрд╣рд╛рдБ рд╡реЗ рдиреАрдЪреЗ рдХреА рдЫрд╡рд┐ рдореЗрдВ рд╣реИрдВ:

рдЫрд╡рд┐

рдкрд╣рд▓рд╛ рд░рд┐рдХреЙрд░реНрдб рдЪреБрдиреЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкрддреНрд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЙрд╕рдХреЗ рд╢рд░реАрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо Source



рдЯреИрдм рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рдХреА рдЫрд╡рд┐ рдореЗрдВ рд╣реИ, рддреЛ рд╣рдо рд╕рдВрджреЗрд╢ рд╣реЗрдбрд░ рджреЗрдЦреЗрдВрдЧреЗ:

рдЫрд╡рд┐

рддреАрд╕рд░рд╛ рдЯреИрдм рд╣рдореЗрдВ рдкрддреНрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд░реИрдХреНрдЯрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдореИрдВ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдЬ рдХреЗ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдереЛрдбрд╝рд╛ рдкрд░реЗ рд╣реИред



рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ



рдЕрдм MailCatcher рдХреЛ рдЗрдВрд╕реНрдЯрд╛рд▓ рдХрд░рдХреЗ рд╣рдо рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛, рд╡рд┐рд╖рдп, рдЕрдЯреИрдЪрдореЗрдВрдЯ рдЖрджрд┐ рдЬреЛрдбрд╝рдХрд░ рдИрдореЗрд▓ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрд╡реЗрджрди рдХреА рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрди рдкрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдЖрдирдВрджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред



рдирд┐рд╖реНрдХрд░реНрд╖



рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рддреБрдЪреНрдЫ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдЖрдзрд╛рд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдФрд░ рдкрд░рд┐рд╖реНрдХреГрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдЖрдк MailCatcher рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рд╢рд╛рдВрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред



рд╢рд╛рдпрдж рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА MailCatcher рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЖрдк рдЗрд╕рдХреЗ рдПрдХреАрдХрд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рдРрд╕реЗ рдХреЛрдИ рд╕рд╡рд╛рд▓ рдереЗ рдЬреЛ рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВрдЧреЗред



рдпрд╣ рдФрд░ рд╕рд╛рдЗрдЯрдкреЙрдЗрдВрдЯ рд╕реЗ рдЕрдиреНрдп рдЕрдиреБрд╡рд╛рдж, рд╕рд╛рде рд╣реА рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдкрд░ рдЕрдиреНрдп рд▓реЗрдЦ ред



All Articles