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 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...


Тази тема е ревизия на следните:
Общото в тях е, че разглеждат направа на контактна форма за вашия сайт, като нещата се свеждат в последствие до изпращане на електронно писмо от localhost под Windows XP операционна система. Замисълът там реализира идея на малък сайт (фирмен, визитка или нещо подобно), с добавена контактна форма.

Разумно е тези неща да бъдат задвижени под *nix операционна система, заради повишената сигурност, липса на вируси и прочие важни неща. Моите предпочитания за такава система лежат на Ubuntu. Тя ползва ядро на Linux, интуитивна е, споделя се е от огромно общество в интернет.

За целта инсталирах LAMP в Ubuntu Desktop 10.04 LTS, за да провеждам тестове на отделни скриптове. В последствие ще ги пренеса на Ubuntu Server 10.04 LTS.

Ubuntu Server има минимални изисквания:
  • 300 MHz x86 processor
  • 128MB of system memory (RAM)
  • 1GB of disk space
  • Graphics card and monitor capable of 640x480
  • CD-ROM drive
В момента провеждам тестове с машина PIII / 256MB / 20GB HDD. За сайт от няколко стандартни страници, информиращи дейност и средно дневно 100 уникални посетители, тази машина с тази система се държи перфектно и това е повече от достатъчно за домашен хост. След инсталацията на системата "CD-ROM drive, Graphics card and monitor" отпадат, защото те са безпредметни за сървъра.



Функцията phpinfo() ми върна този резултат:

Параметър Значение
PHP Version 5.3.2-1ubuntu4.7
System Linux ubuntu 2.6.32-28-generic
Apache Version Apache/2.2.14 (Ubuntu)
Hostname:Port 127.0.1.1:80
HTTP_HOST localhost
Configuration File (php.ini) Path /etc/php5/apache2
Loaded Configuration File /etc/php5/apache2/php.ini
Scan this dir for additional .ini files /etc/php5/apache2/conf.d
PHP_SELF /index.php
_SERVER["SCRIPT_FILENAME"] /var/www/index.php
MySQL client version: 5.1.41

За тест ползвам мой самописен сайт. Чрез него предлагам техническа помощ. Той включва стандартните страници: Дом, Услуги, Продажби, За Мен, Галерия, Контакти.
Сайтът е издигнат на основа HTML+CSS+jQuery и е постигнат по начина описан в тема: Направа на сайт чрез CSS.

Отказах се от CMS (система за управление на съдържанието), защото са тежки, лакоми, често искат обновления и са обект на хакерски атаки. Считам, че не е оправдано ползването им в случая, а отделно самописен сайт говори точно за вашите умения и това му придава по-голяма тежест.

Първите пет страници са статични и в тях няма нищо интересно. Важна става Контакти. Там трябва скрипт, който да обработи заявката за изпращане на писмо.

Сайтът се намира в каталог /var/www/сайт. Функцията phpmail() е включена (често тази функция е изключена на безплатните хостове). Опит да изпратим писмо завършва с върнат резултат - error. Проблемът е, че няма пощенски трансфер, той не е организиран и конфигуриран.

contact form

Има два начина това да стане. Инсталация на sendmail или на smtp сървър. Аз инсталирах sendmail, но резултата ме отказа и го деинсталирах. Скриптът увисваше за 10 минути и едва тогава изпращаше писмото. Инсталацията се свежда до следните команди:

инсталация на sendmail

sudo apt-get install sendmail

Настройка php.ini

sudo gedit /etc/php5/apache2/php.ini

намираме и редактираме следния ред

sendmail_path = /usr/sbin/sendmail -t -i

Реших да се доверя отново на GMail. Тази поща за поредна година обира овации. Преглед на нещата сведоха до инсталация на Exim4. Exim4 e MTA, което се превежда пощенски трансферен агент. На него му е необходим външен smtp - сървър, за да се доведат нещата до край. Всичко се свежда до инсталация и конфигурация на Exim4.

Инсталация на Exim4

sudo apt-get install exim4

Намираме файл /etc/exim4/update-exim4.conf.conf и го редактираме (с root права и редактор). По този начин указваме, че Gmail e пощенския сървър.

# This is a Debian specific file

dc_eximconfig_configtype='smarthost'
dc_other_hostnames='ubuntu'
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587'

В файла за авторизация /etc/exim4/passwd.client добавяме следните редове (заменяме значения за логин и за парола с своите вместо my_name и password съответно)

gmail-smtp.l.google_com:my_name@gmail.com:password
*.google.com:my_name@gmail.com:password
smtp.gmail.com:my_name@gmail.com:password

За да влязат нещата в сила изпълняваме следната команда:

sudo update-exim4.conf

С това настройката завършва и Exim4 изпраща писма, чрез GMail.

Обратно в страница Контакти и пробвам формата. Тя рапортува успешно. На мига получих писмото в пощата си.

contact form

Какво получи тя, показва снимката долу.

gmail


Super AJAX Contact Form


Тук следва забавна част. Всички процедури описани горе спокойно може да се пропуснат, защото безплатната Super AJAX Contact Form ги носи в себе си, чрез файл email.class.php. Тази форма ми стана фаворитна.

Тя е написана на PHP и AJAX. Има капча валидатор и е подсигурена срещу спам-ботове. Настройката и се свежда до запълване на няколко полета.

Редактирайте файл config.php. За да сработи GMail, нещата изглеждат така:

<Config>
<smtp>
<!-- smtp gmail config -->
<use>yes</use>
<auth>yes</auth>
<secure>tls</secure>
<host>smtp.gmail.com</host>
<username>my_name@gmail.com</username>
<password>123456</password>
<port>587</port>
</smtp>
<charset>utf-8</charset>


Тест с произволен текст ...

Super Ajax Contact Form

... и отговора.

GMail

Официален сайт на Super AJAX Contact Form






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

26.02.2011 profruit 

1 Response to "Ubuntu localhost send mail"

  1. fedora Said,

    Честита Баба Марта!
    Здраве и още много срещи ;)

     

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

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

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