Pomoc - Wysyłanie maili z aplikacji

Wysyłanie maili z aplikacji

Przy wysyłaniu maili przez nasz serwer pocztowy konfiguracja poczty jest taka sama niezależnie od tego czy korzystasz z programu pocztowego czy wysyłasz maile ze swojej aplikacji. Podczas konfiguracji powinieneś pamiętać o:

  • uwierzytelnieniu użytkownikiem (cały czały adres e-mail) i hasłem
  • podaniu jako serwera poczty swojej domeny
  • włączeniu szyfrowania (STARTTLS na porcie 25 lub SSL na 465)
  • ustawieniu jako nadawcy adresu e-mail, którym się uwierzytelniasz lub aliasu do tego konta - nie jest możliwe wysyłanie poczty z dowolnym nadawcą kopertkowym (envelope sender)

Maile bez autoryzacji, szyfrowania, z dowolnym nadawcą kopertkowym możesz wysyłać korzystając z /usr/sbin/sendmail

Poniżej konfiguracja poczty w Django, Pylons i Ruby on Rails. Dane użyte poniżej są przykładowe - zamień je na dane do konta pocztowego założonego przez panel administracyjny. Przedstawiona konfiguracja odnosi się jedynie do naszych serwerów SMTP - konfiguracja innych serwerów może się nieco różnić.

Django

W pliku settings.py ustaw

EMAIL_HOST = jasio.megiteam.pl  #dla VPSów jasio.megivps.pl
EMAIL_HOST_USER = jasio@jasio.megiteam.pl
EMAIL_HOST_PASSWORD = *****
DEFAULT_FROM_EMAIL = jasio@jasio.megiteam.pl SERVER_EMAIL = jasio@jasio.megiteam.pl #to ustawienie odpowiada za nadawcę maili z błędami z aplikacji
EMAIL_USE_TLS = True

W wersji zainstalowanej w systemie (0.96) szyfrowanie jest włączone domyślnie i nie musisz go dodatkowo konfigurować.

Pylons

Aby otrzymywać raporty o błędach ze swojej aplikacji w pliku settings.ini ustaw:

email_to =   
smtp_server = jasio.megiteam.pl #dla VPSów jasio.megivps.pl
error_email_from = jasio@jasio.megiteam.pl
smtp_username = jasio@jasio.megiteam.pl
smtp_password = ******
smtp_use_tls = true

Jako error_email_from możesz również podać alias do konta wpisanego w smtp_username.

Ruby on Rails

Od wersji Ruby 1.8.7 standardowa biblioteka do SMTP obsługuje STARTTLS i nie trzeba instalować dodatkowego pluginu.

Dla Ruby 1.8.6: Zainstaluj w aplikacji bibliotekę pozwalającą na szyfrowanie połączeń z serwerem SMTP. Możesz skorzystać z tego pluginu. W katalogu aplikacji wydaj polecenie:

./script/plugin install git://github.com/collectiveidea/action_mailer_optional_tls.git

W config/environment.rb pisz:

  ActionMailer::Base.delivery_method = :smtp  
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.default_charset = 'utf-8'
ActionMailer::Base.smtp_settings = {
:tls => true, <---- jeżeli korzystasz ze wspomnianego pluginu   :enable_starttls_auto => true, <--- od Ruby 1.8.7 :address => 'jasio.megiteam.pl', # dla VPSów jasio.megivps.pl :port => 25, :user_name => 'jasio@jasio.megiteam.pl', :password => '******', :domain => 'jasio.megiteam.pl', :authentication => :login }

Bardziej szczegółowe informacje na temat wysyłania maili z Railsów znadziejsz w dokumentacji tego frameworka.