Avatar billede IT2011 Nybegynder
31. maj 2011 - 12:51 Der er 18 kommentarer og
1 løsning

mail funktion med php

Hej

jeg har sat min egen server op til at køre webaserver, med apache, php og mysql. Det kører på en Linux centos.

Nu vil jeg gerne have mail funktionen i php til at virke, og søger i den forbindelse en guide til opsætning af smtp på min server, så jeg kan bruge mail funktionen tilo at sende med.
Avatar billede CCodam Nybegynder
31. maj 2011 - 12:58 #1
Her er en guide til opsætning af postfix/dovecot:
http://wiki.centos.org/HowTos/postfix#head-c02f30bf0669d9b47a6c14c114243338b5ea1f27

Du skal dog være opmærksom på at har du et normalt privat internet abbonnement, vil der højst sandsynligt være lukket for port 25, der bruges i forbindelse med modtagelse af mails.
Avatar billede IT2011 Nybegynder
31. maj 2011 - 13:07 #2
Hej

Jeg skal ikke modtage email på denne server, kun sende via webserver/php
Avatar billede IT2011 Nybegynder
31. maj 2011 - 13:15 #3
Hej CCodam

Kan du skære det ud i pap så jeg kan forstå det?

min server har f.eks. ikke noget domain navn.

det eneste jeg ønsker ar at kunne sætte op så jeg sender til en smtp server, via min udbyder...
Avatar billede CCodam Nybegynder
31. maj 2011 - 14:57 #4
Jeg har vidst misforstået din forespørgelse, det beklager jeg.
Jeg troede du ville sætte en mailserver op på din linux maskine.

Hvis du vil have at mail() funktionen i php benytter sig af en extern smtp server, skal du først sætte sendmail op, og sætte det op til at bruge en extern SMTP:
http://www.recital.com/index.php?option=com_content&view=article&id=71%3Ahowto-configure-linux-sendmail-to-use-external-isp-as-smtp-mail-relay&Itemid=59

Derefter skal du i PHP.ini sætte mail funktionen til at benytte sendmail:

[mail function]
sendmail_path = /usr/sbin/sendmail



Tjek at stien /usr/sbin/sendmail er korrekt, eller ret den til lokationen af sendmail.
Avatar billede IT2011 Nybegynder
31. maj 2011 - 20:44 #5
jeg har prøvet at følge din vejledning, men tror jeg mangler noget...

Filen /etc/named.conf eksistere ikke den har jeg oprettet, med indholdet fra vejledningen, men kan ikke starte named service pga fejl i named.conf

er det fordi der er noget som jeg skal have installeret først?
Avatar billede CCodam Nybegynder
31. maj 2011 - 21:11 #6
"Step 5 - Now you need to install bind"


yum -y install bind



Det er en DNS server service.
Avatar billede IT2011 Nybegynder
31. maj 2011 - 21:20 #7
[root@localhost ~]# yum -y install bind
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.fysik.dtu.dk
* extras: mirror.fysik.dtu.dk
* updates: mirror.fysik.dtu.dk
Setting up Install Process
Package 30:bind-9.3.6-16.P1.el5.x86_64 already installed and latest version
Nothing to do

det ser ud til at den allerede er istalleret...
Avatar billede IT2011 Nybegynder
31. maj 2011 - 21:50 #8
jeg har prøvet at afinstaller bind og installer igen og lagt koden ind i named.conf

hvorefter jeg kan starte named

men der er ikke stadig ikke hul igennem så har brug for lidt hjælp til fejl finding
Avatar billede IT2011 Nybegynder
31. maj 2011 - 22:00 #9
der er lidt hul, når jeg sender en email fra hjemmesiden:

# mailq
/var/spool/mqueue is empty
                Total requests: 0
You have new mail in /var/spool/mail/root

og derefter:
# mailq
/var/spool/mqueue is empty
                Total requests: 0

Så det ser ud til at emailen bliver behandlet af webserveren, men hvor langt når den ?
Avatar billede IT2011 Nybegynder
31. maj 2011 - 22:37 #10
Har rodet lidt videre med sendmail...

hvis jeg sender til den mail adresse som jeg buger til mit domæne virker det ikke, men hvis jeg sender til min hotmail: it2011@live.dk virker det fint.

Jeg har så prøvet at sende til min hotmail fra hjemmesiden og det virker også!

Hvorfor kan jeg ikke sende til min egen email? og hvor kan jeg sende til min hotmail, er det fordi man sender ubeskyttet til hotmail?
Avatar billede CCodam Nybegynder
01. juni 2011 - 09:40 #11
Så din sendmail er nu sat op til at bruge din ISP's eller anden extern SMTP server?

Når du sender en mail til mail@live.dk så virker det fint, men mail@ditdomain.dk virker ikke?

Bruger du ditdomain.dk i konfigurationen af sendmail/bind?
Avatar billede IT2011 Nybegynder
01. juni 2011 - 10:33 #12
har rodet lidt frem og lidt tilbage og nu virker det...

ved ikke om det er helt rigtigt men ser ud til at virke så skynder mig at lukke her!
Avatar billede IT2011 Nybegynder
01. juni 2011 - 10:46 #13
hmm og så alligevel ikke....

kan sende fra sendmail i terminal, men det kommer ikke igennem fra hjemmesiden nu... håber du lige kan hjælpe med denne sidste ting. (Da jeg ikke slev ved hvad jeg laver....)
Avatar billede CCodam Nybegynder
01. juni 2011 - 11:24 #14
Hvad har du stående under [mail function] i din php.ini fil?

Hvordan ser dit script ud på hjemmesiden, der forsøger at sende en mail?
Avatar billede IT2011 Nybegynder
01. juni 2011 - 11:39 #15
[mail function]
sendmail_path = /usr/sbin/sendmail -t -i

php kode, som virkede på et tidspunkt:
if($_POST['Email'])

    {

    $recipient = "it2011@live.dk";



    $subject = $_POST['Emne'];



    $message = "Kontakt:<br>";

    $message .= $_POST['Navn']."<br>";

    $message .= "E:".$_POST['TLF']."<br>";

    $message .= "T:".$_POST['Email']."<br>";

    $message .= "<br>";



    $message .= $_POST['Indhold'];



    $headers =     "From: ".$_POST['Email']."\r\n".

                        "Reply-To:\r\n".

                        "X-Mailer: PHP/" . phpversion();

    mail($recipient, $subject, $message, $headers);

    }


Når jeg genstarter httpd skriver den der er mail som bliver gemt i /var/spool/mail/root/
Så webserveren er klar over der en post som ikke er sendt.
Avatar billede CCodam Nybegynder
01. juni 2011 - 12:54 #16
Har du SElinux installeret? Det kan være den blokerer apache for at bruge sendmail

Du kan tjekke det ved følgende kommando:
sestatus -b | grep sendmail


Hvis du får følgende output, er det SElinux der blokerer:
httpd_can_sendmail off


I så fald, bør følgende kommando åbne op, tjek efterfølgende med ovenstående:
setsebool -P httpd_can_sendmail 1
Avatar billede IT2011 Nybegynder
01. juni 2011 - 13:13 #17
Når jeg skriver den 1. komando kommer der ikke noget svar, hvilket jeg tolker som at det ikke er der problemet er.

Tror mere jeg har rodet i en conf fil som jeg ikke skulle....
Det virkede jo også på et tidspunkt, bare kun til min hotmail.
Avatar billede CCodam Nybegynder
01. juni 2011 - 13:20 #18
Du kan jo forsøge at fjerne sendmail og bind, og starte forfra med de to :/
Avatar billede IT2011 Nybegynder
08. juni 2011 - 11:07 #19
fandt ud af at der var meget mail der ikke kom frem pga spamfilter og det bl.a. var derfor det ikke virkede.

Men jeg sidden nu men spamfilter problemet og har derfor oprettet dette spørgsmål:
http://www.eksperten.dk/spm/940564
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

A/S Bryggeriet Vestfyen

IT-Architect /Administrator

Udviklings- og Forenklingsstyrelsen

Serverdrift-specialist til Team Planning Tools

Banedanmark

Data Engineer

Arbejdernes Landsbank

Data Engineer til Dataplatform