Permalänk
Medlem

Skicka mail från PHP kod

Vad behöver jag för att en hemsida på min server ska kunna skicka ut mail. Är nämligen helt grön när det gäller mail servers osv..

Är det postfix jag behöver?

Kör debian.

Tacksam för svar.

Permalänk
Medlem

Det är jag också intresserad över.. Kollar man lite i php.ini verkar det som att det räcker att fylla i smtp... men det står win32 only...

Sedan står det..
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

Visa signatur

It's nice to be important but it's more important to be nice. Posse!

Permalänk
Avstängd
Visa signatur

Mozilla Firefox - Rediscover the Web!

Permalänk
Hedersmedlem

Du behöver någon typ av SMTP-server uppsatt. På det här området finns det flera alternativ, exempelvis:

  • Sendmail - "Urfadern", ganska jobbig att konfigurera då den använder sig av m4 för sina konfigurationsfiler. Går dock att konfigurera en hel del, lider dessvärre av ett ganska dålig säkerhetshistoria. Följer med de flesta *NIX-system.

  • Postfix - Kraftfull MTA med bra säkerhetshistoria och stor användarbas.

  • Exim - Min personliga favorit. Även denna är mycket konfigurerbar (dock med vettig syntax) och en fin historia när det gäller säkerhet. Används av många ISP:er, framförallt i Storbritannien. Standard i Debian.

  • qmail - Skrevs för att vara ett säkert alternativ till Sendmail. Underhålls inte längre av honom, utan det är helt dess användare som håller igång utvecklingen (vet inte hur effektivt den underhålls dock). Vet inte så mycket om denna då jag aldrig kört den själv.

Hur som helst så borde standardkonfigurationen av samtliga vara tillräcklig för att skicka mail.

Sedan finns det andra alternativ, typ mini_sendmail och mssmtp som ansluter till en redan existerande SMTP-server och skickar mailet.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Tack för svaret m0REc!

Men hur ska jag igentligen confa exim4 så att det går skicka mail från en php kod? Har Bredbandsbolaget som ISP och dom blockar väl port 25? Så man måste köra via deras server? Finner ingen vettig howto till detta.

dpkg-reconfigure exim4-config hjälper inte heller mycket.

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av sunnis
Tack för svaret m0REc!

Men hur ska jag igentligen confa exim4 så att det går skicka mail från en php kod? Har Bredbandsbolaget som ISP och dom blockar väl port 25? Så man måste köra via deras server? Finner ingen vettig howto till detta.

dpkg-reconfigure exim4-config hjälper inte heller mycket.

Lägg in detta direkt efter "begin routers" i exim-konfigurationen:

relay: driver = manualroute domains = !+local_domains route_list = * smtp.bredband.net bydns host_find_failed = defer transport = remote_smtp verify = false

Kopierat ifrån min egna konfiguration, men det borde fungera ihop med standardkonfigurationen. Möjligt att Debian har ändrat något i den, men det är bara att säga till så kan det lösas.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

Jag har ett smått jobbigt problem i FreeBSD där min PHP envisas med att skicka fån www@hostname som avsändare hela tiden, även om jag skickat med rätt "From:"-headers

(www är systemusern för Apache/PHP)

Någon som har en aning?

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av maDa
Jag har ett smått jobbigt problem i FreeBSD där min PHP envisas med att skicka fån www@hostname som avsändare hela tiden, även om jag skickat med rätt "From:"-headers

(www är systemusern för Apache/PHP)

Någon som har en aning?

Kolla så att sendmail inte anropas med -f-flaggan.
Kan tänkas att vissa sendmail-implementationer ignorerar From:-headern om denna är specifierad.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av m0REc
Lägg in detta direkt efter "begin routers" i exim-konfigurationen:

relay: driver = manualroute domains = !+local_domains route_list = * smtp.bredband.net bydns host_find_failed = defer transport = remote_smtp verify = false

Kopierat ifrån min egna konfiguration, men det borde fungera ihop med standardkonfigurationen. Möjligt att Debian har ändrat något i den, men det är bara att säga till så kan det lösas.

Borde jag inte ställa in i php.ini filen också att den ska använda exim som MTA?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av m0REc
Kolla så att sendmail inte anropas med -f-flaggan.
Kan tänkas att vissa sendmail-implementationer ignorerar From:-headern om denna är specifierad.

nope, "-t -i" är de enda som är specifierat i php.ini.

Permalänk
Hedersmedlem

Varför kör ni inte något i stil med msmtp som m0rec länkade till? Mycket simplare och man behöver inte bry sig om säkerhet och tjafs heller

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av sunnis
Borde jag inte ställa in i php.ini filen också att den ska använda exim som MTA?

Bara att lägga in

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

i php.ini, /usr/sbin/sendmail läser av /etc/mailer.conf och därifrån får reda på vilken binär som gäller för sendmail.

$ /usr/sbin/sendmail -bV Exim version 4.62 #1 built 02-Sep-2006 05:11:14

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem

okej, testa som du skrev morec.

Dock får jag detta felmedelandet när jag skickar iväg ett mail

server:/home/server# exim4 -v sunnis1@gmail.com tjennareLOG: MAIN <= root@server@sunnissite.com U=root P=local S=273 server:/home/server# delivering 1HX3kM-0007nQ-5n T: remote_smtp for sunnis1@gmail.com Connecting to smtp.bredband.net [195.54.106.231]:25 ... connected SMTP<< 220 ironport.bredband.com ESMTP SMTP>> EHLO sunnissite.com SMTP<< 250-ironport.bredband.com 250-8BITMIME 250-SIZE 10485760 250-STARTTLS 250-AUTH PLAIN LOGIN 250 AUTH=PLAIN LOGIN SMTP>> STARTTLS SMTP<< 220 Go ahead with TLS SMTP>> EHLO sunnissite.com SMTP<< 250-ironport.bredband.com 250-8BITMIME 250-SIZE 10485760 250-AUTH PLAIN LOGIN 250 AUTH=PLAIN LOGIN SMTP>> MAIL FROM:<root@server@sunnissite.com> SIZE=1304 SMTP<< 501 #5.5.2 syntax error 'MAIL FROM:<root@server@sunnissite.com> SIZE=1304' SMTP>> QUIT LOG: MAIN ** sunnis1@gmail.com R=relay T=remote_smtp: SMTP error from remote mailer after MAIL FROM:<root@server@sunnissite.com> SIZE=1304: host smtp.bredband.net [195.54.106.231]: 501 #5.5.2 syntax error 'MAIL FROM:<root@server@sunnissite.com> SIZE=1304' LOG: MAIN Error while reading message with no usable sender address (R=1HX3kM-0007nQ-5n): at least one malformed recipient address: root@server@sunnissite.com - malformed address: @sunnissite.com may not follow root@server LOG: MAIN Process failed (1) when writing error message to root@server@sunnissite.com (frozen)

kan felet vara att det står root@server@sunnissite.com?? Ser onekligen fel ut.

Edit: Ändra det nu, men istället är det root@sunnissite.com som avsändare, jag vill att det ska vara server användaren som skall vara avsändare. Men det funkar nu iallafall

Edit: Någon som vet hur man ska göra så att exim4 kan ta imot mail??