Profruit banner

Умен звънец в openHAB

16 декември 2023

Телефонът е винаги с мен и сега, където и да се намирам получавам известие от openHAB, че някой е позвънил и чака пред вратата. А ако ме няма вкъщи става ясно часа и датата на последното позвъняване.

Tasmota Multipress

30 септември 2023

Идеята е Sonoff Touch T1 US 2 в салона, да управлява освен своето осветление и това в кухнята, а още вентилатора.

DIY 12V 1A WiFi Router UPS

22 април 2023

При поредно прекъсване на захранването вкъщи, батерията на нoтбука и двата UPS автоматично превключват на аварийно захранване и едновременно полита съобщение за конфуза

Zigbee2MQTT клониране

21 януари 2023

... как да клонираме съществуваща настройка на Zigbee2MQTT без да се налага последвало интервю на zigbee-устройствата.

LD2410 - бюджетен датчик присъствие в openHAB

11 февруари 2023

Цената на HLK-LD2410 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...


Условие за стартиране на сайт е наличие на хост-сървър. Тази част се предлага в два варианта: платен или безплатен. По ред причини безплатният вариант веднага отпада. От друга страна, прохождащи любителски проекти са нерентабилни за платен вариант и на младия сайтостроител му остава трети вариант, да превърне своята машина в домашен хост. Нещата се свеждат до XAMPP под Windows по разбираеми причини. Препъни камъка на този вариант е как да организира изпращане на електронно писмо от контактната форма на сайта, тоест, изпращане на e-mail от localhost под Windows. До този момент всеки опит рапортува грешка и невъзможност за изпращане.

Електронно писмо може да се изпрати по три начина:
  1. Sendmail
  2. PHP Mail Function
  3. SMPT Server
Най-лесен начин за целта е да ползваме SMPT - сървърите на Google. Надеждни, сигурни, бързи, безплатни. Единствено ограничение идва от броя писма на ден. Достатъчно е регистрация в Google и voila, всё готово!

При останалите варианти си усложнявате живота с допълнителни инсталации и настройки, най-вече подсилвате уязвимостта на вашия Windows.

В този практикум се позовавам на последните версии на отделните приложения към датата на публикуване и за свое удобство ползвам англоезичните варианти. Съответно:
XAMPP 1.7.3 on Windows
Joomla! 1.15.21
WordPress 3.0.1

Joomla! контактна форма

Моята фаворитна система за управление на съдържанието (CMS) е Joomla!. Тя е PHP скрипт, позволяващ издигане на сайт моментално. Остава само да напълните вашето съдържание. В разгледания пример, тя е задвижвана от XAMPP 1.7.3 под Windows.

Организацията на контактна форма преминава  следните стъпки:
  1. Създаваме категория за целта (Components > Contacts > Categories), да речем "Контактна форма". Съхраняваме измененията.
  2. Добавяме контактна форма за вашия Joomla!-сайт (Components > Contacts), чрез бутон New, под име "Contact Us". Съхраняваме измененията.
  3. Следва да посочим в менюто пътя към контактна форма. За целта добавяме нов пункт в текущото меню. В моя случай това е главното меню на сайта (Main Menu*). Преминаваме следния път Menu > Main Menu* .Добавяме чрез бутон New. В момента на добавяне се отворя прозорец Change Menu Item (виж снимката долу) и посочваме пътя до създадената контактна форма. Запълваме съответните празни полета и съхраняваме измененията.
Настъпи последна съществена част - организация на изпращане на писмото. Преминаваме по път Site > Global Configuration > Server > Mail Settings. Съответно нещата стават следните:

Mailer SMPT Server
SMTP Authentication Yes
SMTP Security SSL
SMTP Port 465
SMTP Username my_google_acount@gmail.com
SMTP Password my_password
SMTP Host smtp.gmail.com

Съхраняваме измененията.


Остана да си вземем наградата от положения труд. Запълваме контактната форма на Joomla! с примерно писмо и изпращаме.


Joomla! рапортува ОК. Писмото е изпратено успешно.


То е изпратено на адреса на администратора (според условието за стандартна контактна форма), посочен при инсталация на Joomla! или променен в последствие в потребителския профил на същия.

Писмото е пристигнало успешно и има следния вид. То пристига с минута закъснение.


Затова обичам Joomla!, защото работи от раз и е достатъчно, да я извадиш от кутийката.

Настройка на XAMPP 1.7.3 под Windows

Разни хора - разни сайтове и това значи разни от Joomla!. При разните хора проблемът е налице. Опит, да изпратят писмо от XAMPP под Windows остава неуспешен. Причина за това е конфигурацията на XAMPP. Този пакет е замислен да проследява динамични сценарии в самата система и едва ли да се ползва като хост - сървър. Безбройните вируси за Windows са причината. Но все пак ако вървим напред, нещата се свеждат до редакции на два файла, според нашите условия.

Първият файл е php.ini. Отворете го с текстови редактор. Той се намира в следната директория и променете съдържанието му в пункт [mail function]. Измененията са посочени в тъмно-синьо.

C:\xampp\php\php.ini

[mail function]

SMTP = localhost > SMTP = smtp.gmail.com
smtp_port = 25 > smtp_port = 587
;sendmail_from = postmaster@localhost > sendmail_from = my_google_acount@gmail.com
;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" > sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

Вторият файл е sendmail.ini. По същия начин редактирайте и него. Той се намира в следната директория .

C:\xampp\sendmail\sendmail.ini

# Example for a user configuration file

# Set default values for all following accounts.
defaults
logfile "C:\xampp\sendmail\sendmail.log"

# Mercury
#account Mercury
#host localhost
#from postmaster@localhost
#auth off

# A freemail service example
#account Hotmail
#tls on
tls_certcheck off
#host smtp.live.com
#from [exampleuser]@hotmail.com
#auth on
#user [exampleuser]@hotmail.com
#password [examplepassword]

account Gmail
tls on
tls_certcheck off
host smtp.gmail.com
from my_google_acount@gmail.com
auth on
user my_google_acount@gmail.com
password *************

port 587

# Set a default account
account default : Gmail

По аналогия на примера с Hotmail, копираме съдържанието. Разкоментираме (премахваме символ #) редовете, за да станат изпълними и вписваме нашите данни относно Google. Рестартираме Apache и се радваме на новата придобивка.

WordPress контактна форма

Не крия, че другата ми слабост е WordPress. Тази безплатна система държи близо половината от пазарния дял сред посестримите си и това обяснява моя интерес към нея. За разлика от Joomla!, WordPress се инсталира без контактна форма. Тя трябва да се добави. Предложенията за такава изобилстват от варианти, но в повечето случа това са "plugins".

Всеки добавен plugin в WordPress носи два минуса. На практика plugin-ът е php - скрипт, които изисква допълнителен  ресурс от рам-памет и в един момент, при поредна инсталация на следващ  plugin, ви посреща неприятно съобщение, че не разполагате с налична памет. Бъдете разумни при добавянето им.

Вторият минус бие по безопасността на системата, защото автора може да е недоогледал кода и по този начин оставил вратичка за злоумишленици.

Как се инсталира контактна форма в WordPress без plugin?

С помощта на добрия стар HTML, например. Изтеглете Flash and PHP contact form. От този ресурс вашата форма ще изглежда така.


От изтегления архив ви трябват файл - form.swf и файл - mailer.php.

Отворете с текстови редактор mailer.php и намерете "email@yourserver.com". Заменете го с вашия пощенски адрес и съхранете измененията.

Създайте каталог "contact" в вашия WordPress-сайт в /wp-content/plugins/* (тук е традиционното място на всички допълнения за WordPress). В този каталог добавете form.swf и mailer.php. Готово, половината работа е свършена. Като превантивна мярка, можете да добавите празен index.html - файл или да забраните в .htacsess  разглеждане на каталога.

Влезте в админ-панела на вашия WordPress - сайт и преминете път Pages > Pages. Чрез бутон Add New създайте нова страница "Contact", например. В редактора на появилия се прозорец превключете в режим HTML. Копирайте кода показан долу в вашата страница и съхранете измененията с бутон Update.

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="300" height="302" id="form" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="./wp-content/plugins/contact/form.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="./wp-content/plugins/contact/form.swf" quality="high" bgcolor="#ffffff" width="300" height="302" name="form" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

Готово. Добавихте контактна форма в вашия сайт. Ако желаете да промените езика от английски на друг, ще се наложи редакция на файл - form.fla, което не е предмет на темата тук.

Конкурент на флаш - технологията са java-скриптовете и те неотстъпват по отношение на интерактивността и дизайнерския замисъл, още повече, че на домашния хост няма да сме ограничени от към памет. Ефектно представяне на контактна форма предлага SimpleModal Contact Form.

Нещата около нея са традиционни за инсталацията на plugin в WordPress. Изтегляме споменатата форма. Добавяме я в каталог /wp-content/plugins/* на нашия WordPress - сайт.

Съхраняваме измененията и създаваме нова празна страница (по аналогия на флаш контактната форма). За име на страницата задаваме "Contact", например. Това име ще се извежда на менюто, преминавайки към контактната форма.

Активираме plugin-а от админ-панела. В панел Settings се добавя нов раздел - SimpleModal Contact Form. Преминавайки в SimpleModal Contact Form Configuration, извършваме настройка на формата по свой вкус. В първи пункт Contact Link URL: посочваме отговор /Contact, а за Contact Link Title: Contact.

За извеждането на формата се използва хипер-връзка с клас "smcf-link". На практика това дава възможност в произволно място от сайта, да се добави бутон, активиращ формата с код:
Контакт

Ако посетителя е изключил поддръжката на JavaScript, той ще премине към адрес, указан в параметър «href».

На практика нещата изглеждат така:





Контактна форма за самописен сайт

Нещата не са задължителни да бъдат CMS. За обикновен сайт-визитка може да ползваме формата, която разгледахме в "Контактна форма за вашия сайт".

Естествено продължение на темите ме подтикна да потърся по-ефектни форми. Интересът ми задържа LightForm ::: Free Ajax/PHP Contact Form.

Тя комбинира FormCheck2 за валидация и NiceForms за стилизация. От страницата на автора разбираме, че е спряна поддръжката на формата.

За настройка отворете файл contact.php. Спуснете се на ред 55 и посочете вашия адрес в # $to = 'yourname@domain.com';.

На практика нещата изглеждат така:









до нови срещи   ^.^

05.11.2010 profruit 

2 Response to "Изпращане на E-Mail от XAMPP под Windows"

  1. зайче Said,

    Ой, най-сетне ме логна да ти пиша коментарче. Искрено казано нямам време да прочета настоящата тема, но пък всяка предишна ми е представлявала огромен интерес. Аз съм онуй дръпнатото, което като куче върти опашка когато припари до вълнуващите ти истории. Виждам, че тук насоките са по-скоро практични, но като намеря време (това обещание май ми стои отдавна) ще потъна със задоволство в пречупеният от фина и откровена бруталност поглед на снизходителната ти непоколебимост. Оксиморон е, сигурно защото колкото повече те чета, толкова повече ми става ясно, как не те познавам и не си ми ясен. Ясните неща не са интересни, те са просто тривиални. Или прости.
    Радвам се, че те срещам отново, както мога да се радвам когато срещна стар приятел. Благодаря ти за споделеното и... лека вечер.

     

  2. svetljjjo Said,

    благодарско за обясненията за XAMPP под Windows беше ми много полезно

     

Публикуване на коментар

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: openHAB, Ubuntu, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога