Strona główna Exim oparty o GMail jako domyślny serwer SMTP
Wpis
Anuluj

Exim oparty o GMail jako domyślny serwer SMTP

Exim oparty o GMail jako domyślny serwer SMTP

Wysyłanie maili jest jedną z podstawowych funkcjonalności wszelakiej maści aplikacji, pisanych w różnych językach. W przypadku PHP również. Oczywiście kodopisanie zazwyczaj odbywa się nie na serwerze, na którym domyślnie aplikacja będzie się znajdować, a na komputerze programisty. Stawiamy Linuksa, Apacze z PHP, i jazda. A co z mailem?

Oczywiście można pokusić się o postawienie całego serwera poczty, ale pytanie - po co? Bo chcemy przetestować wydajność naszego leciwego laptopa?

Najprostszym rozwiązaniem jest oczywiście postawienie jakiegoś lekkiego demona smtp, który będzie wykorzystywał zewnętrzne konto pocztowe. Takową hybrydą jest połączenie lekkiego Exima z GMailem.

Instalujemy demona poleceniem:

1
apt-get install exim4-daemon-light

Następnie przechodzimy do konfiguracji:

1
dpkg-reconfigure exim4-config

Pokrótce poszczególne opcje konfiguracyjne:

  • poczta wysyłana przez pośrednika: otrzymywana przez SMTP lub fetchmail
  • Nazwa pocztowa systemu: domain.com
  • Adresy IP, na których nasłuchiwać nadchodzących połączeń: zostawiamy bez zmian
  • Inne systemy docelowe dla których poczta jest przyjmowana: puste
  • Komputery dla których przekazywać pocztę: puste
  • Adres IP lub nazwa pośrednika przyjmującego wychodzącą pocztę: smtp.gmail.com::587
  • Ukrywać lokalną nazwę w wychodzącej poczcie? Nie
  • Utrzymywać ilość zapytań DNS na minimalnym poziomie (dzwonienie na żądanie)? Nie
  • Format dostarczania poczty lokalnie: format mbox w /var/mail/
  • Podzielić konfigurację na małe pliki? Nie
  • Odbiorca poczty dla kont root i postmaster: puste

Następnie edytujemy plik szablonu Exima:

1
gedit /etc/exim4/exim4.conf.template

znajdujemy linię z tekstem

1
.ifdef DCconfig_smarthost DCconfig_satellite

a następnie dodajemy w tej sekcji:

1
2
3
4
5
send_via_gmail:
       driver = manualroute
       domains = ! +local_domains
       transport = gmail_smtp
       route_list = * smtp.gmail.com

znajdujemy linię z tekstem

1
begin authenticators

a następnie dodajemy w tej sekcji:

1
2
3
4
gmail_login:
       driver = plaintext
       public_name = LOGIN
       client_send = : nazwaTwojegoKonta@gmail.com : TwojeGMailoweHasło

znajdujemy linię z tekstem

1
transport/30_exim4-config_remote_smtp_smarthost

a następnie dodajemy w tej sekcji:

1
2
3
4
5
gmail_smtp:
       driver = smtp
       port = 587
       hosts_require_auth = $host_address
       hosts_require_tls = $host_address

Aby autentykacja przeszła prawidłowo, edytujemy plik

1
/etc/exim4/passwd.client

dodając tekst:

1
2
3
Gmail-smtp.l.google.com:nazwaTwojegoKonta@gmail.com:tw0j3H4sU0
*.google.com:nazwaTwojegoKonta@gmail.com:tw0j3H4sU0
smtp.gmail.com:nazwaTwojegoKonta@gmail.com:tw0j3H4sU0

Teraz aktualizujemy konfigurację Exima:

1
update-exim4.conf

oraz restarujemy sam demon:

1
/etc/init.d/exim4 restart

Czasami zdarza się sytuacja, że maila nie wychodzą, a logu Exima można znaleźć takie rekordy:

1
R=send_via_gmail T=gmail_smtp defer (-53): retry time not reached for any host

Aby rozwiązać ten problem, należy zalogować się na używane konto przez przeglądarkę, a następnie wydać polecenie

1
exim -qff

Wszystkie skolejkowane wiadomości powinny zostać wysłane.

Ten post jest udostępniony na licencji CC BY 4.0 przez autora.

Dropbox i PCManFM w LXDE

Bieżąca lista aplikacji na Androidzie