Проблемът
Нека се върнем в тема "Изпращане на E-Mail от XAMPP под Windows" и по-точно в част "WordPress контактна форма". Там видяхме, че WordPress първоначално не може да изпрати електронно писмо. Наложи се редакция на файл php.ini и на файл sendmail.ini. И едва тогава нещата се наредиха.Същото положение може да ви посрещне на уеб-хостинг, особено на безплатен, хостерът да е изключил пощенския демон.
Проблемът възниква от факта, че WordPresss по подразбиране ползва Sendmail за изпращане на писма. На уеб-хостинга едва ли ще имаме достъп , да коригираме споменатите файлове. Остава да прицепим WordPress към някой пощенски SMTP сървър. Избраникът в случая е GMail (а кой друг?). Остава само да настроим WordPress на GMail.
Варианти на това дело много, но те са основани на plug-in. Например, WP Mail SMTP.
WordPress с всяка нова версия става все по-гладна за ресурси и ползването на допълнителни разширения утежнява това положение. На практика WordPress притежава вградени средства за решаване на този проблем, остава само да ги настроим.
WordPress използва за изпращане на поща phpmailler.
WordPress отдавна умее да изпраща писма с използване на SSL и тук визирам от версия 2.70 до 3.0.3 (към датата на публикация). За по-стари версии не се наемам да коментирам.
За пример ще вържем WordPress версия 3.0.3. към поща на GMAil (Google Apps).
Решението
Регистрирайте профил в GMail. По този начин ще имате достъп до пощенския сървър на Google - smtp.gmail.com.Следващ ход е да разберем за наличие на следните неща:
- Отворен порт 465
- PHP поддържа SSL
- PHP поддържа изпращане на поща
Използвайте този скрипт за отговор. Копирайте съдържанието в текстови редактор. Дайте произволно име, например, gmailtest.php и го качете на вашия хост. После от браузъра се обърнете към неговия адрес и вижте отговора.
gmailtest.php
<?php error_reporting(E_ALL); ini_set('display_errors', true); echo "<html><body>"; $fp = fsockopen("ssl://smtp.gmail.com", 465, &$errno, &$errstr, 10); if(! $fp) echo "ssl://smtp.gmail.com:465 - $errstr ($errno)\n"; else { fclose($fp); echo "ssl://smtp.gmail.com:465 - ok\n"; } echo " </body></html>"; ?>
Отново с текстови редактор влезте в инсталационния пакет на WordPress. Намерете файл /wp-includes/pluggable.php. Променете съдържанието му по показания начин.
сменяме на
$phpmailer->isSMTP();
А още намерете файл /wp-includes/class-phpmailer.php и настройте параметрите по показания начин.
var $Host = 'smtp.gmail.com';
var $Port = 465;
var $SMTPSecure = "ssl";
var $SMTPAuth = true;
var $Username = 'my_username@gmail.com';
var $Password = 'my_password';
Това е всичко. Пробваме и се радваме.
Недостатъци
При обновяване на ядрото на WordPress, файлове pluggable.php и phpclassmailer.php дружно ще се препишат на нови и ще се наложи отново корекция.В ssmtp няма опашка. Ако в момента на изпращане на писмото сървърът не поеме писмото, то ssmtp просто забравя за него. Надяваме се, че у GMail това не се случва.
profruit blog поздравява своите читатели с
честита коледа и щастлива нова 2011 година
до нови срещи ^.^
0 Response to "GMail SMTP Сървър за WordPress"
Публикуване на коментар