Mailserver i slackware, ett par frågor

Permalänk
Medlem

Mailserver i slackware, ett par frågor

Jag behöver använda funktionen mail() i php, och då behöver jag en mailserver förstår jag. Det går att ha på samma burk som jag har servern va? Förslag på mailservrar som är enkla att installera? Jag är lite av en grönis på linux överhuvudtaget. Qmail kanske? Eller Postfix? Jag behöver inte kunna använda mycket mer än mail-funktionen i php (tills vidare).

Permalänk

sendmail är standard i Slackware, men om du inte hunnit lära dig något om den så rekommenderar jag att du plockar bort den och istället lägger in Postfix.

Anledningen till att jag gör det är därför att Postfix är väldigt mycket enklare att konfigurera.

Postfix packeterat för Slackware hittar du här: http://www.linuxpackages.net/download.php?id=9471

Använd "pkgtool" för att ta bort sendmail och installera postfix.

Permalänk
Medlem

Okej, jag har installerat postfix och avinstallerat sendmail. men när jag kör postfix start så får jag felmeddelandet "postfix: error while loading shared libraries: libldap-2.3.so.0: cannot open shared object file: No such file or directory" vilket borde innebära att libldap (vad nu det är?) inte är installerat. Men var hittar jag det, och vad är det för något?

Permalänk

Ajdå, jag såg inte att den var byggd för att stödja "allt". Du måste även lägga in dessa paket:

http://www.linuxpackages.net/download.php?id=8138
http://www.linuxpackages.net/download.php?id=8189
http://www.linuxpackages.net/download.php?id=9313
http://www.linuxpackages.net/download.php?id=7543

OpenLDAP är en katalogserver, ungefär som en nedskalad SQL-server.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Albatorsk
Ajdå, jag såg inte att den var byggd för att stödja "allt". Du måste även lägga in dessa paket:

http://www.linuxpackages.net/download.php?id=8138
http://www.linuxpackages.net/download.php?id=8189
http://www.linuxpackages.net/download.php?id=9313
http://www.linuxpackages.net/download.php?id=7543

Haha, linux i ett nötskal. Tänkte nästan att det var lite för enkelt

Citat:

Ursprungligen inskrivet av Albatorsk
OpenLDAP är en katalogserver, ungefär som en nedskalad SQL-server.

Borde man inte kunna använda Postfix-mysql http://www.linuxpackages.net/pkg_details.php?id=9460 ?

Jag tackar och testar.

Permalänk
Citat:

Ursprungligen inskrivet av Fr0hike
Borde man inte kunna använda Postfix-mysql http://www.linuxpackages.net/pkg_details.php?id=9460 ?

Jodå, visst kan du göra det.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Albatorsk
Jodå, visst kan du göra det.

För vad blir skillnaden? Jag har ju mysql installerat menar jag.

Något av de paketen du skrev där var ju mysql och något var ju postgresql. Behöver man ha båda dessa? Varför? Och när jag redan har mysql installerat?

Permalänk

Det postgrespaketet du länkade till beror varken på PostgreSQL eller OpenLDAP, så om du väljer att lägga in det så slipper du lägga in de två paketen. Du behöver dock ändå lägga in cyrus-sasl som jag länkade till tidigare.

Anledningen till att du behövde lägga in både PostgreSQL och MySQL för det första postfixpaketet var att den helt enkelt var byggd mot båda, och därför hade ett "beroende" av dem.

Det första paketet var även byggt mot MySQL 5, vilket jag inte tror följer med Slackware som standard (det är nog version 4, om jag inte har fel för mig).

Jag vet inte vilken version av MySQL som det andra paketet (det du länkade till) är byggt mot, men eftersom det inte står så är det nog 4'an.

Om allt detta är för krångligt så är det kanske lika bra att lägga tillbaka sendmail ändå. I grundutförande är det inte svårt att använda för att enbart skicka brev, men om man vill göra något lite roligare med det så måste man studera handböcker upp och ner i evinnerliga tider

Permalänk
Medlem

Okej... Nej jag vill försöka
Jag har installerat postfix, openldap, postgresql och cyrus-sasl. Anledningen till att jag inte tog med mysql var för att jag redan har mysql5 installerat. Och nej jag tror också det är mysql4 som följer med slack, men jag har installerat mysql5 själv.
När jag försöker starta postfix med "postfix start" får jag meddelandet "error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory" och det är kanske inte så konstigt, man måste väl ange sökväg till libmysqlclient.so någonstans. Logiskt sett så borde det ju vara i någon konfig-fil för postfix, men den enda jag vet är /etc/postfix/main.cf och där står ingenting om mysql. Är jag helt ute och cyklar? Kan det vara så att jag måste installera just det paketet för att få med den filen? Jag hittar ju andra liknande filer som libmysqlclient.a och libmysqlclient_r.a i /usr/local/mysql/lib. Det känns som att om jag installerar det paketet med mysql5 så kommer det att fucka upp min nuvarande mysql-installation. Eller?

Permalänk

Du är nästan på rätt väg. Kontrollera var denna fil finns; locate libmysqlclient.so

Ta sökvägen till den filen (exklusive filnamn) och lägg in den i /etc/ld.so.conf

När det är klart så kör du, som root ldconfig

Nu bör Postfix hitta filen utan några problem.

Permalänk
Medlem

locate libmysqlclient.so:

root@localhost:~# locate libmysqlclient.so /usr/lib/mysql/libmysqlclient.so /usr/lib/mysql/libmysqlclient.so.14 /usr/lib/mysql/libmysqlclient.so.14.0.0 /usr/lib/libmysqlclient.so /usr/lib/libmysqlclient.so.14 /usr/local/mysql-standard-5.0.22-linux-i686/lib/libmysqlclient.so.15

Jag lade till /usr/local/mysql-standard-5.0.22-linux-i686/lib i /etc/ld.so.conf och körde ldconfig och fick följande fel:

ldconfig: /usr/local/mysql-standard-5.0.22-linux-i686/lib/libmysqlclient.so.15 is not an ELF file - it has the wrong magic bytes at the start.

jag har sökt en del på felmeddelandet, men jag hittar inget.

Permalänk

Har du provat med att lägga in /usr/lib/mysql eller /usr/lib i /etc/ld.so.conf och kört ldconfig?

Visa signatur

Gigabyte-P35-DS4 | Intel Core 2 Quad Q6600 [3 GHz] | 2x1GB Corsair XMS-6400@800Mhz | Nvidia Geforce 460 GTX [975/2000 MHz] | Intel 320 Series 80 GB SSD | | SETI@Home Team: Sweclockers.com

Permalänk
Medlem

Nu kom jag på vad det var som orsakade det senaste felet. Igår testade jag att kopiera libmysqlclient.so.14 och döpte om kopian till libmysqlclient.so.15, bara för att se vad den sade då. Så det var alltså inte den riktiga libmysqlclient.so.15. Det var väl därför jag fick det senaste felmeddelandet. Jag har raderat den filen nu. Filen libmysqlclient.so.15 finns alltså inte på datorn. Kör jag ldconfig nu så får jag inget fel, men å andra sidan så får jag samma fel vid postfix start som tidigare, nämligen

postfix: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory

Ursäkta missförståndet

Permalänk

Ah, det förklarar ett och annat

Det går att bygga (kompilera) MySQL utan att bygga libmysqlclient.so.15. Troligtvis är det vad som gjorts med din version.

Du kan ladda ner det MySQL-paketet jag länkade till och plocka ut libmysqlclient.so.15 från det. Enklast sättet att göra det på är nog att använda Midnight Commander (mc) då det kan gå in i package tgz-filer som om det vore kataloger.

Givetvis går det också bra att packa upp det som root med t.ex:

# tar xzf mysql-5.0.22-i486-1kjz.tgz -C /tmp

Sen bara lägger du /tmp/usr/lib/mysql/libmysqlclient.so.15.0.0 i /usr/local/mysql-standard-5.0.22-linux-i686/lib/ och kör ldconfig. Det kan hända att ldconfig inte automatiskt länkar libmysqlclient.so.15.0.0 till libmysqlclient.so.15. Då får du själv göra det;

# cd /usr/local/mysql-standard-5.0.22-linux-i686/lib # ln -s libmysqlclient.so.15.0.0 libmysqlclient.so.15

Bara du inte installerar paketet rakt upp och ner, för då blir det bara pannkaka med dubbla installationer

Permalänk
Medlem

Tack! Nu startade postfix. Men hur konfigurerar man php för att använda postfix? i php.ini finns sendmail-inställningar, antar att det är där?

Permalänk

Yes. Postfix är tänkt att kunna användas som en såkallad "drop in replacement" för sendmail. Vad det innebär är att du kan konfigurera PHP på samma sätt som om du använt sendmail.

Permalänk
Medlem

Okej, tackar för hjälpen. jag får det dock inte att funka. jag har aldrig konfigurerat sendmail (eller postfix heller för den delen) förut. Den vill inte skicka iväg mailen med php:s mail(). I php.ini står ju sendmail_path =
Vad ska man skriva där? Sökvägen till postfix förstår jag, men vad är den? jag har sökt på datorn och hittat postfix på några ställen:
/etc/postfix (mapp)
/usr/libexec/postfix (mapp)
/var/spool/postfix (mapp)
/usr/sbin/postfix (fil)

Ingen av dessa fungerar.
Är det mer man måste kongifurera? måste man göra något i inställningarna för postfix?

Edit: Jag körde postconf sendmail_path och fick fram sendmail_path = /usr/sbin/sendmail

Jag testade att sätta in detta i php.ini, men det fungerade inte heller.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Fr0hike
jag får det dock inte att funka.

din ISP kanske inte stöder utgående mailtrafik

ex ISP's som inte *: telia,comhem, BBB

Visa signatur

(defmacro lisp-bootstrap (expr) expr)

Permalänk
Medlem

Okej, jag sitter på BBB.... Går det inte att få igång det?

Permalänk
Medlem

Ju då det går, du får helt enkelt relay via din server till BBB:s mailserver, ingen aning hur man gör i postfix dock.

Permalänk

Du lägger till följande rad i din mail.cf

relayhost = smtp.bredband.net

Då skickas all utgående post genom BBBs server.

Permalänk
Medlem

Men vad ska jag skriva i sendmail_path i php.ini?

Permalänk

Vad är sökvägen till kommandot sendmail? När postfix installeras så ska den även lägga in en "workalike" för sendmail med samma namn. Så testa att söka efter "sendmail" istället.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Albatorsk
Vad är sökvägen till kommandot sendmail? När postfix installeras så ska den även lägga in en "workalike" för sendmail med samma namn. Så testa att söka efter "sendmail" istället.

Hmm... Jag hängde inte riktig med där. Hur vet jag vad sökvägen till kommandot sendmail är? Du menar att jag ska ha sökvägen till sendmail istället för postfix?

Permalänk

Precis. sendmail är förutom namnet på en MTA även vad programmet heter som kommando. Så sökvägen kan t.ex. vara /usr/bin/sendmail. Enklaste sättet att hitta det är att försöka med which; which sendmail. Om inget dyker upp så testar du med locate istället; sudo updatedb; locate sendmail

Permalänk
Medlem

Okej, testade med det och fick upp /usr/sbin/sendmail. Satte in detta i php.ini, men det funkar fortfarande inte. mail() returnerar falskt... Var finns postfix-loggarna? Det kanske står något vettigt i dem. När jag skriver mail i terminalen så får man fram de olika mailen jag har försökt skicka i php.

Koden är förresten

<?php error_reporting(E_ALL); $email = "tommyhansson@gmail.com"; $subject = "my subject"; $message = "my message"; if(!mail($email, $subject, $message)){ echo "nej"; }else echo "ja"; ?>

Förresten, för att anamma ändringarna i php.ini, så räcker det väl med att starta om apache med ./apachectl restart ?

Permalänk

Postfix loggar till /var/log/maillog

Är postfix igång när du försöker skicka brev?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Albatorsk
Postfix loggar till /var/log/maillog

Är postfix igång när du försöker skicka brev?

Postfix är igång.
I maillog står en massa saker.

Aug 15 20:49:37 localhost postfix/local[2661]: fatal: open database /etc/aliases.db: No such file or directory Aug 15 20:49:38 localhost postfix/master[1013]: warning: process /usr/libexec/postfix/local pid 2661 exit status 1 Aug 15 20:49:38 localhost postfix/master[1013]: warning: /usr/libexec/postfix/local: bad command startup -- throttling

Det låter som att jag behöver installera någon form av databas eller?
Här är hela maillog http://static.supaknerka.com/maillog.txt

Permalänk

Ajaj, har du inte skapat en aliasdatabas?

Som root, kör newalias

Om den klagar på att den inte hittar /etc/aliases så länkar du ut den från postfix-katalogen; ln -s /etc/postfix/aliases /etc/aliases

aliases.db som skapas blir en binärfil, men aliases är en vanlig textfil. Den innehåller de alias du vill använda i ditt mailsystem. Som till exempel postmaster. Du har ingen användare som heter så, men du vill kanske att alla brev som skickas till postmaster@dindomän ska hamna hos fr0hike@dindomän; då lägger du till postmaster-aliaset med en rad i stil med postmaster: fr0hike. Du kan även skapa alias för andra alias, så att t.ex. abuse ska skickas till postmaster.

Ja, det är egentligen bara att öppna filen så ser du hur den är uppbyggd. Glöm bara inte att köra newalias efter att du ändrat i den för att den ny aliasdatabas ska skapas.

Permalänk
Medlem

Ah okej, då är det kanske det som är problemet.
Men behöver jag inte redigera /root/.elm/aliases.text på något vis? Jag fick nämligen felmeddelandet "Couldn't open /root/.elm/aliases.text " när jag körde newalias, och det enda jag fick fram när jag googlade var att aliases.text skulle redigeras på något vis..

Först och främst vill jag kunna skicka mail från servern, brev TILL servern kommer som prioritet nummer 2