Csak kimenő email beállítás non-prod szerveren

Fórumok

Cél: házi szerverről email értesítéseket lehessen küldeni saját Gmailes címemre, esetleg máshova is. Email fogadása lehetetlen, cgNAT és dinamikus IP miatt egyaránt.

Mikor legutóbb csináltam ilyet, volt vagy 10 éve, simán a t-online smtp-jét állítottam be Exim smarthostnak, kamu feladóval (root@localhost vagy ilyesmi). Azóta sokkal szigorúbb lett az emailezés.

Azt gondolom, hogy ha teljesen kamu feladója van az emailnek, akkor az nem biztos, hogy megérkezik bárhova, mert spamnek fog tűnni. Ha meg igazi feladót adok meg, pl. a saját Gmail címemet, ugyancsak nem fog megjönni, mert nem az elvárt IP-ről indul a levél, és SPF meg ilyesmi fogja megölni.

És milyen SMTP szervert használjak? Megbízható és ingyenes közül egyet választhatok? Használhatnám a Gmail-t, de nem szívesen írom be a Gmail-es jelszavam egy config fájlba. Kamu Gmail fiók szintén nem szép dolog, ott is bejöhet mobilos validáció, kitiltás vagy mittudomén.

Hozzászólások

Különböző gmail aliasokat használhatsz címzettként, ez alapján szabályokat is létrehozhatsz, így nem zavaró, hogy mindig Te vagy a feladó.
Fejesjoco+smartmontools@gmail.com, fejesjoco+lmsensors@gmail.com stb.
https://support.google.com/mail/answer/22370?hl=hu

De ha akarod, hozz létre több account-ot, e célból nem tilos:
"The Creation and Use of Multiple Gmail Accounts
Don’t create or use multiple accounts to abuse Google policies, bypass Gmail account limitations, circumvent filters, or otherwise subvert restrictions placed on your account. (For example, if you’ve been blocked by another user or have had your Gmail account disabled due to abuse, don’t create a replacement account that engages in similar activity.)
You’re also not allowed to create Gmail accounts by automated means or buy, sell, trade, or re-sell Gmail accounts to others"
https://www.google.com/gmail/about/policy/

Üdv,
Marci

en regisztraltam egy gmail fiokot a hazi szerveremnek, azzal levelezik smtp-n, siman jelszavas auth-al.

Ez technikailag pont ugyanaz a szituáció, (submission) mint amikor a saját gépeden a kedvenc levelezőkliensedet használod.

Authentikált SMTP, és azt az SMTP szervert használod, amelyik a feladó domain SPF rekordjához passzol. (Ha a feladó címe @gmail.com-ra végződik, akkor a Google SMTP szerverét használod, stb.)

> nem szívesen írom be a Gmail-es jelszavam egy config fájlba

Authentikált SMTP-hez kénytelen leszel beírni az authentikációs adatokat...

"Ez technikailag pont ugyanaz a szituáció, (submission) mint amikor a saját gépeden a kedvenc levelezőkliensedet használod."

Nem teljesen. Én egy ember vagyok, nekem van egy saját email címem. A szerver nem egy ember. Kicsit gáz, ha a root@hp.localnet accountról menő levél úgy néz ki, mintha Gipsz Jakab <gipszjakab@gmail.com> adta volna fel. Sőt, a szerveren több account is van, pl. smartmontool@hp.localnet és lmsensors@hp.localnet, amit jó lenne megkülönböztetni. N darab kamu accountot regisztrálni még gázabb.

"Authentikált SMTP-hez kénytelen leszel beírni az authentikációs adatokat..."

Igen, de nem a saját éles Gmailes fiókomhoz valót. A kamu Gmailes fióktól pedig tartok egy kicsit.

Az email @ utáni része (domain part) kötött. Ha a külvilágba szeretnél valid e-mailt küldeni, akkor azt nem teheted meg @hp.localnet végződéssel, annak érvényes, globálisan létező, ellenőrizhető domainnek kell lennie.

A @ előtti rész (local part) egy teljesen másik kérdés. Amennyiben egy levelezési szolgáltatótól (legyen az akár a gmail, akár bármi más) postafiókot kapsz, akkor ott a szolgáltató általában valamilyen keretek közé szorítja, hogy mi lehet a @ előtt. Ez nem feltétlenül egy darab e-mail címet jelent, lehetnek mindenféle alias-ok, stb.

Ha már gmail: emlékeim szerint a local part tartalmazhat szeparátorként "+" jelet, és az alapján akár szűrheted / válogathatod is a leveleket.

Ha van saját domained és/vagy hosztneved, akkor a levelezést biztosító szolgáltatótól kaphatsz arra megoldást, hogy Te tudd specifikálni, mi legyen a @ előtt. A gmail-nek is van ilyen megoldása.

Jelen esetedben talán az a legjobb megoldás, hogy csinálsz a szervereidnek egy darab postafiókot, mondjuk gipszjakabszervere@gmail.com címmel. A leveleket pedig az alábbi címmel küldöd ki:

gipszjakabszervere+cron@gmail.com
gipszjakabszervere+smartmontools@gmail.com
gipszjakabszervere+lmsensors@gmail.com

Ha a külvilágba szeretnél valid e-mailt küldeni, akkor azt nem teheted meg @hp.localnet végződéssel, annak érvényes, globálisan létező, ellenőrizhető domainnek kell lennie.

de megteheti (abban az ertelemben legalabbis, hogy raprobalhat), mert azt a fogado szerver donti el, hogy mit ellenoriz (pl. hello helo name, etc). Egy normalis helyen nyilvan ellenorzik, hogy a felado cime(nek domainje) koser-e, stb.

Ugy latom, pl. a joco.name domainben nincs spf/dkim hasznalva, igy abban tetszoleges local reszt is beallithat a sender cimben...

--
t-systems-es it architect allast keres. Jelige: csak webshopot ne kelljen...

Lehet, hogy hülyeség, de most ez állt össze:
* A saját gmail címem gipsz.jakab@gmail.com.
* Ha egy levél feladója valami helyi account (pl. root), átírjuk gipsz.jakab+root@gmail.com-ra. Ha be van állítva a from, azt is átírjuk, vagy eldobjuk a levelet. Az átírás 1 db reguláris kifejezéssel megy.
* Ha egy levél címzettje valami helyi account, ugyanígy átírjuk. Ha létező címzett, akkor hagyjuk meg annak, ami.
* Valami minimál sendmail-szerű démon annyit csinál, hogy a leveleket a Gmail SMTP-jével küldi el, application specific password-del autentikálva.

Így minden levél feladója és címzettje valódi email cím lesz, mégis látszik benne, hogy honnan jött/hova ment, és minden levél megjelenik a Gmail inboxomban (és a sentben is). Azt hiszem, ez így egyben megold minden problémát. Vagy túlkomplikálom? Értem, hogy miért olyan nagy a szigor emailek terén (köszi, spammerek), de szerintem egy tök alap use case, hogy egy szerverről az értesítések minden gond nélkül eljussanak egy emberhez, helyes feladóval meg minden.

Gmailnél még lehet olyan gond, hogy tudtommal a kiküldött levelek feladóját átírja, és nem tudom, meghagyja-e a pluszos részt. Ugyanez működhet akkor is, ha az ISP-mnél regisztrálok egy címet, és a küldőket arra írom át (a címzett továbbra is a saját gmail címem). Vagy a küldő és feladó lehet két külön Gmail cím. Ez már mindegy.

Még nekem kell utánanéznem, hogy a kérdéses programok milyen feladóval és címzettel fognak próbálkozni, lesz-e gondom envelope vs header címzéssel, meg ilyesmi. Illetve meg kell találni azt a programot, ami ezt tudja. Léteznek olyan egyszerű dolgok, mint pl. ssmtp, de szerintem kevés lesz. Lehet, hogy Postfix/Exim lesz.

lol. Mielott ujrairnad a sendmail-t, probald ki a postfix address rewriting feature-jet :-)

http://www.postfix.org/ADDRESS_REWRITING_README.html#generic


/etc/postfix/main.cf:
    smtp_generic_maps = hash:/etc/postfix/generic

Kb. valami ilyesmi megteszi:


/etc/postfix/generic:
    (.*)@localdomain.local               gipsz.jakab+$1@gmail.com

--
t-systems-es it architect allast keres. Jelige: csak webshopot ne kelljen...

Pár dolog alapból rootnak vagy egyéb helyi accountnak megy, pl. cron (tudom, hogy át lehet állítani, de ahány user, annyi helyen). Egy csomó mindent kézzel kell konfigurálni, pl. smartd, APT unattended upgrades.

Elismerem, van egy szépsége annak, ha helyi accountnak történő mail deliveryt teljesen tiltjuk, és csak kifelé engedjük. Csak akkor egy csomó helyre kell kézzel beírni a címet. És ha valamit kihagyok, akkor menni fog az email a 19313 PID-ű mittudoménmilyen service accountnak és sose fogom észrevenni.

Sokkal kevesebb dologhoz kell hozzányúlni, ha azt mondom, minden helyi accountnak címzett levél legyen átírva egy külső címre (1 db regex a megfelelő helyre). És akkor tuti nem maradok le semmiről. Én azt gondoltam volna, ez a tipikus usecase.