ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ PHP-ΡΠ°ΠΉΠ»Ρ ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ½ΠΎ | GeekBrains
Π Π°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΎΠ± ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ PHP ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ
3 ΠΌΠΈΠ½ΡΡΡ45418ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ
ΠΠ½Π°ΡΠΎΠ»ΠΈΠΉ ΠΠΎΡΡΡΡΠ΅Π½ΠΊΠΎ
ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ
ΠΠ½Π°ΡΠΎΠ»ΠΈΠΉ ΠΠΎΡΡΡΡΠ΅Π½ΠΊΠΎ
https://gbcdn.mrgcdn.ru/uploads/post/2317/og_image/abcf60fe41cd67a165982ba9ff4c4aa5.png
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ Π±Π»ΠΎΠ³Π°! Π£ Π²Π°Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΡΠΆΠ΅ Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠΏΡΡ Π² ΠΊΠΎΠ΄ΠΈΠ½Π³Π΅ Π½Π° PHP. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠΆΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, Π° Π·Π½Π°ΡΠΈΡ, Π»ΠΎΠ³ΠΈΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ΄Π°.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠΊΠ° Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π² Π΄Π΅ΡΡΡΠΎΠΊ ΡΡΡΠΎΠΊ, ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π΅Ρ Π½Π° ΡΠ°ΡΡΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΠΎ Π²Ρ ΡΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π½Π΅ Π²ΡΠ΅Π³Π΄Π°: Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΈΡΠ΅ΠΌ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΈ Ρ.Π΄. β Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.Β
ΠΡ ΡΠΏΡΠΎΡΠΈΡΠ΅: Β«ΠΡ ΠΈ ΡΡΠΎ Ρ ΡΠΎΠ³ΠΎ? Π Π°Π·Π²Π΅ ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΈΡΠ°ΡΡ Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅?Β».
- ΠΏΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ°ΡΡΡΠΌ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ
- ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ
- ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΡΡ-Π΄Π²Π° ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ ΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ Ρ ΡΠ΅Π±Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, ΡΠ΅ΠΌ Π½Π° ΡΠ°ΠΌΡ ΠΏΡΠ°Π²ΠΊΡ.
ΠΡΠ»ΠΈ ΡΡΠΈΡ Π΄ΠΎΠ²ΠΎΠ΄ΠΎΠ² Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ β ΡΠΎΠ²Π΅ΡΡΡ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ Π ΠΎΠ±Π΅ΡΡΠ° ΠΠ°ΡΡΠΈΠ½Π° Β«Π§ΠΈΡΡΡΠΉ ΠΊΠΎΠ΄Β». Π ΠΏΠΎΠΊΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ 2 ΡΠ°ΠΉΠ»Π°: `index.php` ΠΈ `1.php`, Π»Π΅ΠΆΠ°ΡΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
Π€Π°ΠΉΠ»Β «index.php»:
<!doctype html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> Β </body> </html>
Π€Π°ΠΉΠ» «1.php»:
<h2>Hello World!</h2>
ΠΠ°Π΄Π°ΡΠ°: Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° «1. php» Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ `body`, ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ°ΠΉΠ»Π° «index.php». Π Π΅ΡΠΈΡΡ Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΠΈ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ . ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ PHP Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ:
- `include`
- `include_once`
- `require`
- `require_once`
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ `include`:
<!doctype html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php include '1.php'; ?> </body> </html>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅:
ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ PHP ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡ. ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠΌ ΡΠ°ΠΉΠ» `1.php` Π² ΠΏΠ°ΠΏΠΊΡ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ `test`, ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ `index.php`.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π΄Π»Ρ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠ°ΠΏΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, Π° ΠΏΠΎΡΠΎΠΌ ΠΈ ΡΠ°ΠΌ ΡΠ°ΠΉΠ». Β
ΠΠ°Π»Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠ΄ Π² `index.php`.
<?php include 'test/1.php'; ?>
Π‘ΡΡΠΎΠΊΠ°, ΡΡΠΎ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ `include`, ΡΡΠΎ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ (ΠΊ ΡΠ°ΠΉΠ»Ρ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅) ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΌ (ΠΎΡ ΠΊΠΎΡΠ½Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ). Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ.
ΠΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ Π² ΠΏΡΡΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ. Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ β `/`.Β
ΠΡΠ»ΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ `test` Ρ Π½Π°Ρ Π±ΡΠ»Π° Π±Ρ Π΅ΡΠ΅ ΠΏΠ°ΠΏΠΊΠ° `lot`, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π»Π΅ΠΆΠ°Π» ΡΠ°ΠΉΠ» `1.php`, ΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅Π» Π±Ρ ΡΠ°ΠΊ: ‘test/lot/1.php’.
Π‘ ΠΏΡΡΡΠΌΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ. ΠΡΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ . Π€Π°ΠΉΠ» «index.php»:
<!doctype html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php $say = 'Hello world!'; include 'test/1. php'; echo $test; echo "<p>End</p>"; ?> </body> </html>
Π€Π°ΠΉΠ» `1.php`:
<?php echo "<h2>{$say}</h2>"; $test = 'TEst connect';
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π²ΡΠ²ΠΎΠ΄Π΅:
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° PHPΒ
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ php Β«ΡΠΈΡΠ°Π΅ΡΒ» ΠΊΠΎΠ΄ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· ΠΈ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠΈΡΠ°Π΅ΠΌ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. ΠΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΅ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ» «index.php», Π° Π·Π½Π°ΡΠΈΡ, ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½Π΅Π³ΠΎ. ΠΠΎΠΉΠ΄Ρ Π΄ΠΎ ΡΡΡΠΎΡΠΊΠΈ Ρ `include ‘test/1.php’`, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎ ΡΠ°ΠΉΠ» ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ «index.php».Β
ΠΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»Π° «1.php» ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ `$say`, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ‘Hello world!’. ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° «1.php», ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ `$test`, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½ Π² ΡΠ°ΠΉΠ»Π΅ `index.php`.
ΠΡΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΠΎΠ²Π΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ `1. php` ΠΈ `index.php` ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΈ Π²ΡΠ²ΠΎΠ΄Ρ Π² Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
Π Π°Π·Π»ΠΈΡΠΈΡ `include`, `include_once`, `require`, `require_once`
ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ°ΠΉΠ» «1.php»Π² ΡΠ°ΠΉΠ» «2.php» ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ «index.php»:
Π ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ²ΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΠΎΠ΄ PHP Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ²Π΅Π» `End`. ΠΠ°ΠΌΠ΅Π½ΠΈΠΌ `include` Π½Π° `require` ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
Π ΠΈΡΠΎΠ³Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½ΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π²ΡΠ²ΠΎΠ΄Π° `End` Π² ΠΊΠΎΠ½ΡΠ΅: ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΠΎΠ΄ php ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΠ» ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ.
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ `include` ΠΈ `require` Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° PHP ΠΏΠ΅ΡΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°, Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ ΡΠ°ΠΉΠ», Π° `require` Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π΅Π³ΠΎ, Π²ΡΠ²ΠΎΠ΄Ρ ΡΠ°ΡΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ `require` ΠΈ `require_once`. ΠΠ½Π΅ΡΠ΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΊΠΈ Π² Π½Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ. ΠΠΎΡ Π½ΠΎΠ²ΡΠΉ «index.php»:
<!doctype html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php $say = 'Hello world!'; require 'test/2. php'; require 'test/2.php'; require 'test/2.php'; require 'test/2.php'; echo "<p>End</p>"; ?> </body> </html>
Π ΡΠ°ΠΉΠ» «2.php»:
<?php echo "<h2>{$say}</h2>";
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ:
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ `require` ΠΌΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·. Π‘Π½ΠΎΠ²Π° Π²Π½Π΅ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ»Ρ. ΠΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» «index.php»:
<!doctype html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php require 'test/2.php'; require 'test/2.php'; require 'test/2.php'; require 'test/2.php'; echo "<p>End</p>"; ?> </body> </html>
Π Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» «2.php» β Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΠΎΠ±ΡΡΠ²ΠΈΠΌ ΡΠ°ΠΌ ΡΡΠ½ΠΊΡΠΈΡ:
<?php echo '<p>Im included</p>'; function sayHello($say) { echo "<h2>{$say}</h2>"; }
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
ΠΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° «2. php» ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π Π² PHP-ΡΠΊΡΠΈΠΏΡΠ΅ Π΄Π²ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π±ΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π²ΡΠ΅ `require` Π½Π° `require_once` ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ ΡΠ½ΠΎΠ²Π°:
Π£ΡΠ°, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ! ΠΠΎ ΠΎΠ±ΡΠ°ΡΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π½ΠΎΠ²Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ°ΠΉΠ» `2.php` Π² `1.php` ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ «index.php».
`Require_once`, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ `require` Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ°, Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ ΡΠ°ΠΉΠ» ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΌΠ΅Π½ΠΈΠΌ `require_once` Π½Π° `include_once`:
ΠΡΠΈΠ±ΠΎΠΊ ΡΡΠ°Π»ΠΎ Π±ΠΎΠ»ΡΡΠ΅, Π½ΠΎ ΠΊΠΎΠ΄ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π» Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°: end Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ. ΠΠ½Π΅ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΊΠΈ Π² «index.php»:
<!doctype html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php include_once 'test/1.php'; include_once 'test/1.php'; include_once 'test/1. php'; include_once 'test/1.php'; echo "<p>End</p>"; ?> </body> </html>
ΠΠ°ΠΏΡΡΡΠΈΠΌ ΠΊΠΎΠ΄:
ΠΠΎΠ΄Π²Π΅Π΄ΡΠΌ ΠΈΡΠΎΠ³ΠΈ
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ PHP-ΡΠ°ΠΉΠ»Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΡΡΡΡΠΌΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ β `include` ΠΈ `include_once`, `require` ΠΈ `require_once`.
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ `include` ΠΈ `require`: ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ°ΡΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π° ΠΏΠ΅ΡΠ²Π°Ρ β Π½Π΅Ρ.
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ `include` ΠΈ `include_once` (Π° ΡΠ°ΠΊΠΆΠ΅ `require` ΠΈ `require_once` ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ): ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Ρ βonceβ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, Π±ΡΠ» Π»ΠΈ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΡΠ°Π½Π΅Π΅. ΠΡΠ»ΠΈ ΠΎΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π»ΡΡ, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ.Β
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ `require_once` ΠΈ `include_once`: Π΄ΡΠΌΠ°Ρ, ΠΎΠ½Π° ΠΏΠΎΠ½ΡΡΠ½Π° ΠΈΠ· Π΄Π²ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠ½ΠΊΡΠΎΠ² π
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠ²ΠΎΠΈΡΡ PHP Π²ΠΎ Π²ΡΠ΅ΠΉ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ β ΠΏΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ Π²Π°Ρ Π½Π° ΠΊΡΡΡΡ PHP-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² GeekBrains. ΠΠ° ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΡΡΠ΅Π² Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±ΠΎΡΡ Ρ PHP, Π½ΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ βΒ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Laravel, Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MS SQL ΠΈ Postgre SQL, ΠΎΡΠ½ΠΎΠ²Ρ HTML/CSS ΠΈ ΠΠΠ. Π ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΉΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΡ!
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅,Β php_developerΠΠ°ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΠ΅ΠΊΡΡΠ΅? ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π½Π°ΠΌ.
10 ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π²Π΅Π±-ΠΏΠΎΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ AJAX ΠΈ PHP Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠ‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅, Π³Π΄Π΅ Π±Ρ ΠΎΠ½ΠΈ Π½ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈΡΡ β Π² Π΄ΠΎΡΠΎΠ³Π΅, Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΎΡΠΈΡΠ°Ρ ΠΈ Π΄ΠΎΠΌΠ°. ΠΠ»ΠΈΠ΅Π½ΡΡ WebMail ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ POP3 ΠΈ SMTP ΠΊΠ°ΠΊ ΡΠ΅ΡΠ΅Π· Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΡΠ΅ΡΠ΅Π· ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ HTML. ΠΠ»ΠΈΠ΅Π½ΡΡ WebMail ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π²Π΅Π±-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ (PHP, ASP.NET, ruby ββon rails, java).
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Ρ
ΠΎΡΠ΅Π» ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Ρ Π²Π°ΠΌΠΈ 10 ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ Π²Π΅Π±-ΠΏΠΎΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ AJAX ΠΈ PHP, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄, ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
Π½ΠΈΠΆΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π²Π΅Π±-ΠΏΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° Π΄ΡΡΠ³ΠΈΠ΅ Π½Π΅Ρ. ΠΡΠ°ΠΊ, ΠΡ
Pro Tip
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Jotform , ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΎΡΠ½ΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠΎΡΠΌΡ Π·Π° ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΠΌΠΈΠ½ΡΡΡ β Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
RoundCube Webmail β ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ IMAP Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΠ΅ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ MIME, Π°Π΄ΡΠ΅ΡΠ½ΡΡ ΠΊΠ½ΠΈΠ³Ρ, ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠΈΡΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΎΡΡΠΎΠ³ΡΠ°ΡΠΈΠΈ. ΠΠ΅Π±-ΠΏΠΎΡΡΠ° RoundCube Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° PHP ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MySQL ΠΈΠ»ΠΈ Postgres. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ XHTML ΠΈ CSS 2.
Zimbra ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠΎΠΉ ΠΈ ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΠ΅ΠΌ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ AJAX Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ³Π°ΡΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠΈΡΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ ΡΡΠΈΠΊΠΈ ΠΏΡΠΎΡΠ΅ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ Β«ΠΌΡΡΠ°ΠΏΠΎΠ²Β» ΡΠ΅ΡΠ΅Π· Π²Π΅Π±-ΡΠ»ΡΠΆΠ±Ρ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ CRM, ΠΊΠ°ΡΡΡ ΠΈΠ»ΠΈ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π΅ΡΠ΅, Π½Π΅ Π²ΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
3. Xuheki
Xuheki β ΡΡΠΎ Π±ΡΡΡΡΡΠΉ IMAP-ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ AJAX-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΠ΅ ΠΎΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ Β«ΠΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ Π°Π³Π΅Π½ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΒ». Xuheki ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ GNU.
SquirrelMail β ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ°Ρ ΠΏΠ°ΠΊΠ΅Ρ Π²Π΅Π±-ΠΏΠΎΡΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° PHP. ΠΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ PHP Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² IMAP ΠΈ SMTP, Π° Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΡΠΈΡΡΠΎΠΌ HTML 4.0 (Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ JavaScript) Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ.
AtMail, Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ajax Webmail, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½Π° PHP, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ WAP-ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-ΠΏΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Windows ΠΈ Linux. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ ΡΡΠΈΠΊΠΈ IMAP / POP3, ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Exim Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ MTA.
AfterLogic WebMail Lite PHP β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΊΡΠΈΠΏΡ Π²Π΅Π±-ΠΏΠΎΡΡΡ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ AJAX ΠΈ ΡΠΊΠΈΠ½Ρ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ, ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ, ΡΠ΄Π°Π»ΡΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ POP3 ΠΈ SMTP). ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΏΠ°Π½Π΅Π»Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°, Π²Π΅Π±-Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΎΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ PHP 4.1 ΠΈ Π²ΡΡΠ΅. Π‘ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ Pro Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈβ¦.
Live Demo
Hastymail β ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ IMAP/SMTP, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° PHP. Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΠΠΠ, ΡΠ΅Π»Π΅ΡΠΎΠ½Π°ΠΌΠΈ, ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ ΠΈ Π²ΡΠ΅ΠΌΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ. Hastymail ΠΈΠΌΠ΅Π΅Ρ ΠΌΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ PHP ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ. ΠΠ»Π°Π³ΠΈΠ½Ρ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Hastymail (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΠΉΠ»Ρ css), ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, Π²ΡΡΠ°Π²Π»ΡΡ XHTML, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² Hastymail, Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ AJAX Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ AJAX ΠΈ Π΄Π°ΠΆΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ SQL.
Mailr β ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-ΠΏΠΎΡΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½Π° Ruby ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ruby On Rails. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ Courier-IMAP, Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ IMAP.
9. Claros inTouch
Claros inTouch β ΡΡΠΎ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Ajax Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠ°ΠΊ Π²Π΅Π±-ΠΏΠΎΡΡΠ°, Π°Π΄ΡΠ΅ΡΠ½Π°Ρ ΠΊΠ½ΠΈΠ³Π°, ΡΠ°ΠΌΠΎΠΊΠ»Π΅ΡΡΠΈΠ΅ΡΡ Π·Π°ΠΌΠ΅ΡΠΊΠΈ, ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ (Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅), Π²Π΅Π±-Π΄ΠΈΡΠΊ (Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅), Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅Ρ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ RSS. . ΠΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠΏΠ°ΠΌΠ° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ Web 2. 0. ΠΠΎΡΡΡΠΎΠ΅Π½ Π½Π° Java, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ JSP/Servlets Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ J2EE ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MySQL.
Postaci β ΡΡΠΎ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ POP3/IMAP Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ PHP, ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ SMTP. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΠΎΠΈΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Postaci Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ PHP. Postaci ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ MySQL, mSQL, Microsoft SQL, Sybase, PostgreSQL.
ΠΡΠ° ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° 11 ΠΌΠ°ΡΡΠ° 2009 Π³. ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ββ21 Π°ΠΏΡΠ΅Π»Ρ 2022 Π³.
Π£ΡΠΈΡΠ΅ΡΡ ΠΆΠΈΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΌΠ½Π΅Π΅, Π° Π½Π΅ ΡΡΠ΅ΡΠ΄Π½Π΅Π΅!
ΠΠΎΠ»ΡΡΠ°ΠΉΡΠ΅ Π½Π°ΡΠΈ Π»ΡΡΡΠΈΠ΅ ΡΡΠ°ΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΡΡ Π½Π΅Π΄Π΅Π»Ρ ΠΏΡΡΠΌΠΎ Π² ΡΠ²ΠΎΠΉ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ.
ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²Π°Ρ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ
Π ΠΠΠΠΠΠΠΠ£ΠΠΠ«Π ΠΠΠΠΠΠΠ―
MailCatcher
MailCatcherΠΠΎΠ²ΠΈΡ ΠΏΠΎΡΡΡ ΠΈ Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π΅ ΡΠ΅ΡΠ΅Π· ΡΠΎΠ½.
MailCatcher Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ²Π΅ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ SMTP-ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ mailcatcher, Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ²ΠΎΠ΅ Π»ΡΠ±ΠΈΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π½Π° smtp://127.0.0.1:1025 Π²ΠΌΠ΅ΡΡΠΎ SMTP-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ http://127.0.0.1:1080, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΈΠ±ΡΠ²ΡΡΡ ΠΏΠΎΡΡΡ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ
- ΠΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΡ ΠΏΠΎΡΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π΅Π΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
- ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ HTML, ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ.
- ΠΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅Ρ HTML, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Ρ. Π΄., ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΡΡΠ»ΠΊΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅.
- Π‘ΠΏΠΈΡΠΎΠΊ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΡΡΠ΅ΠΉ.
- ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π² ΡΠΎΠ΄Π½ΡΡ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ .
- ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ IP ΠΈ ΠΏΠΎΡΡΠ° SMTP/HTTP ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
- ΠΠΎΡΡΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Π°Ρ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ WebSockets, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ ΡΡΠΈΠ΄ΡΠ°ΡΡ ΡΠ΅ΠΊΡΠ½Π΄.
- Π Π°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π΄Π΅ΠΌΠΎΠ½ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠΎΠΌΠ°Π½Π΄Π°
- Sendmail-Π°Π½Π°Π»ΠΎΠ³,
catchmail
, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ mailcatcher ΠΈΠ· PHP. - ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ
ΠΠ°ΠΊ
-
Π³Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ mailcatcher
-
ΠΏΠΎΡΡΠ°Π»ΡΠΎΠ½
- ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° http://127.0.0.1:1080/
- ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· smtp://127.0.0.1:1025
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ mailcatcher --help
Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π‘ΠΌΠ΅Π»ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ GitHub.
Π£ΠΏΠ°ΠΊΠΎΠ²ΡΠΈΠΊ
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠΉΡΠ΅ mailcatcher Π² ΡΠ²ΠΎΠΉ Gemfile. Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²Π°ΡΡ Ρ Π³Π΅ΠΌΠ°ΠΌΠΈ Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Π² README ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ mailcatcher, ΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° gem ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ mailcatcher
, Π·Π°ΡΠ΅ΠΌ mailcatcher
, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ.
Π ΠΠ
Π RVM Π²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° mailcatcher ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ ruby, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ mailcatcher. Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΡΠΎ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π³Π΅ΠΌΠΎΠ², ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ mailcatcher Π² Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π³Π΅ΠΌΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°-ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ:
.rvm default@mailcatcher --create do gem install mailcatcher ln -s "$(rvm default@mailcatcher ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ rvm ΠΏΠΎΠΊΠ°Π·Π°ΡΡ mailcatcher)" "$rvm_bin_path/"
Π Π΅Π»ΡΡΡ
Π§ΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ rails, Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎ Π² Π²Π°Ρ environments/development.rb
:
config.action_mailer.delivery_method = :SMTP config.action_mailer.smtp_settings = { :address => '127.0.0.1', :port => 1025} config.action_mailer. raise_delivery_errors = Π»ΠΎΠΆΡ
PHP
ΠΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ PHP ΠΈΠ»ΠΈ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Drupal, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎΡΡΡ PHP Π² ΡΠ°ΠΉΠ»Π΅ php.ini Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ΅ΡΠ΅Π· MailCatcher Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
sendmail_path = /usr/bin/env catchmail -f [email protected]
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Apache ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
php_admin_value sendmail_path "/usr/bin/env catchmail -f [email protected]"
ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· RVM, ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π²ΡΡΡΠ½ΡΡ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΡΡΠΈ ΠΊ Π±ΠΈΠ½Π°ΠΌ RVM Π² PATH Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ , ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΡ
, ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΠΏΡΡΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ sendmail_path
Π²ΠΌΠ΅ΡΡΠΎ /usr/bin/env catchmail
.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ mailcatcher
Π½Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠΌ SMTP IP ΠΈ/ΠΈΠ»ΠΈ ΠΏΠΎΡΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ --smtp-ip 192.168.0.1 --smtp-port 10025
, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ΅ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ catchmail
:
sendmail_path = /usr/bin/env catchmail --smtp-ip 192. 160.0.1 --smtp-port 10025 -f [email protected]
ΠΠΆΠ°Π½Π³ΠΎ
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Django Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² ΡΠ°ΠΉΠ» settings.py Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
, Π΅ΡΠ»ΠΈ ΠΠ’ΠΠΠΠΠ: EMAIL_HOST = '127.0.0.1' EMAIL_HOST_USER = '' EMAIL_HOST_PASSWORD = '' EMAIL_PORT = 1025 EMAIL_USE_TLS = ΠΠΎΠΆΡ
API
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ RESTful URL-ΡΡ
Π΅ΠΌΠ° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON ΠΈΠ· /messages
, ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ /messages/:id.json
, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΡΡΠΈ Ρ /messages/:id.html
ΠΈ /messages/:id.plain
Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΈ HTML ΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, /messages/:id/:cid
Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ CID ΠΈΠ»ΠΈ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ /messages/:id.source
.
ΠΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΡ
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°, Π½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Π²Π°Ρ, ΡΠ°Π·Π²Π΅ΡΠ²ΠΈΡΠ΅ ΠΈ ΠΈΡΠΏΡΠ°Π²ΡΡΠ΅ ΡΡΠΎ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΈ Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ. ΠΠΊΠ»ΡΡΠΈΡΠ΅ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
- ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ»ΠΎΠΆΠ½Ρ. MailCatcher Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ utf-8 Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ Π²Π΅ΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ SMTP-ΡΠ΅ΡΠ²Π΅ΡΠ°.
Π’ΠΠΠ
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΡΡΠ°Π²ΠΊΡ ΠΏΠΎΡΡΡ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ, ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·.
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌΠΈ ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ CampaignMonitor ΠΈ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ CSS.
- ΠΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΎΡΡΡ Π² ΡΠ»ΡΠΆΠ±Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² CampaignMonitor?
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ
MailCatcher β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΌΠ΅ΡΠ°Π½ΠΈΠ½Π° ΠΈΠ· ΡΡΠΆΠ΅Π»ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΈΡ Π»ΡΠ΄Π΅ΠΉ. ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π»ΡΠ΄ΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΈΡΠΊΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π΅ΡΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ
Π― ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ MailCatcher Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΡΠ»ΠΈ Mailcatcher ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΈ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΌΠ½Π΅ ΠΊΠΎΡΠΌΠΈΡΡ ΠΌΠ΅Π½Ρ ΠΈ ΡΠΈΠ½Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· PayPal.