Avatar billede odni Nybegynder
29. november 2003 - 21:04 Der er 14 kommentarer og
3 løsninger

Mærkelig mail() fejl

Hejsa!

Hmm, jeg får en mærkelig fejl når jeg bruger mail() på min server. Jeg kører php 4.3.2, apache 2 og RedHat linux 9. Når jeg prøver bare at lave en hel normal mail i form af:

mail($til, $emne, $body);

sker der ingenting. Den melder hverken om fejl eller andet.(Og jeg får selvf. ik nogen mail). På RedHats side står der, at det bare burde virke til at starte med, men ... nej - åbenbart ikke. Jeg kører ingen SMTP på min server, men det er noget med, at man ikke behøver at specificere det i ens php.ini. Mail-delen i min php.ini ser således ud:

[mail function]
; For Win32 only.
SMTP = localhost

; For Win32 only.
sendmail_from = me@localhost.com

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

Jeg er lidt usikker på det her, da jeg ik har været i stand til at finde hjælp til problemet. Umiddelbart burde ";" være en kommentar - og hvorfor er windows-only linierne så ikke kommenteret, mens unix linien er? (Det her er standard php.ini - prøvede at ændre kommenteringerne - uden noget resultat).

Er der en kvik gut der ka give mig et lille praj ?
Avatar billede ztyxx Nybegynder
29. november 2003 - 21:08 #1
[mail function]
; For Win32 only.
SMTP = localhost
her skal du indsætte den SMTP som du sender med fra dit mailprogram
Avatar billede sonyboy Nybegynder
29. november 2003 - 21:09 #2
Well, du skal nok lige installere SMTP serveren, og derefter angive pathen til SMTP serveren. Jeg vil umuligtbart skyde på det kan hjælpe dig på vej.
Avatar billede odni Nybegynder
29. november 2003 - 21:09 #3
ok, men nu står der jo win32 only - jeg kører linux ... ?
Avatar billede ztyxx Nybegynder
29. november 2003 - 21:11 #4
hehe, ja linux vil nok ikke tage sig af Win32 indstillinger, så er det en SMTP server du mangler, som sonyboy påpeger
Avatar billede odni Nybegynder
29. november 2003 - 21:12 #5
ok, så det er ikke muligt at bruge en udestående smtp server ? :(
Avatar billede Slettet bruger
29. november 2003 - 21:13 #6
Ja, men ved feltet sendmail_path står der Unix only. Det inkluderer Linux.

Du skal have en sendmail af en slags, men den behøver ikke køre som SMTP-server.
Avatar billede odni Nybegynder
29. november 2003 - 21:14 #7
Det er jeg klar over, sandbox, men i linien ovenover står der en default, som jeg går udfra er rigtig ...
Avatar billede Slettet bruger
29. november 2003 - 21:19 #8
Prøv at se, om der skulle være nogle fejlmeddelelser i /var/log/mail eller deromkring.
Avatar billede odni Nybegynder
29. november 2003 - 21:35 #9
Najs job der sandbox, har fundet en log fil for mailsystemet - indimellem kan jeg finde et par småfejl (udfra 1 mia. liniers kode uden linieskift):

stat=Data format error

Real domain name required for sender address

Mens der andre steder står

stat=Sent

^ det er jo formentlig sådan det skal se ud .. hmmm, vil prøve at udfylde win32 felterne igen så ... ved I hvordan jeg specificerer kodeord/brugernavn til en SMTP server ?
Avatar billede ztyxx Nybegynder
29. november 2003 - 21:41 #10
du skal ikke specificere kodeord og bruger, bare skrive smtp serverens navn, eks bruger jeg TDC, så den hedder smtp.mail.dk
Avatar billede Slettet bruger
29. november 2003 - 21:42 #11
En anden gang, kan du bruge tail logfilnavn lige efter du har forsøgt at sende.

En SMTP-server bruger normalt ikke brugernavn og password. Du skal nok finde et sted, hvor du kan definere, hvilken afsenderadresse, der bliver sat på.
Avatar billede zeled Nybegynder
29. november 2003 - 21:44 #12
Kig evt. på PEAR's mail funktion.... Men der lidt mere avanceret, men kan bruge SMTP server med bruger og password, hvis du skal relaye på en anden server.
Avatar billede odni Nybegynder
29. november 2003 - 22:35 #13
FUCK HVOR ER DET NAJS !!! DET VIRKER HERRE GODT TAAAAAAARK ...

Men jeg blev liiige nødt til at lave ret så mange ændringer (helt klart sandbox' log-anvisning der hjalp mig (hvorfor tænkte jeg dog ik på det?)). For dem der evt. har samme problem, gjorde jeg følgende (obs. jeg kører ssh forbindelse hjemmefra til serveren, så der kan være andre text-editorer der er smartere):

Allerførst skal du sikre dig, at dit domæne er registreret korrekt, kør følgende kommando:

nslookup ditdomæne.dk

Hvis den melder positiv kører du text-editoren vi på filen hosts i etc-mappen:

vi /etc/hosts

Sørg for at få fat i serverens ip bag routeren (eller hvis du har dyn-ip fik du den i nslookup). Slet derefter linien efter kommentaren, og erstat den med noget i stil med (Obs. servernavnet står i den linie du sletter):

dinip ditdomæne.dk ditservernavn

Tryk på esc og skriv vi-kommandoen:

:x

Kør dit php-script, og den fejl, beskrevet her, burde være løst ! :D

Hvis ztyxx og sandbox lige smider et svar, får i allesammen lidt point (sandbox mest dog :P)
Avatar billede rackbox Nybegynder
29. november 2003 - 23:41 #14
Du skal i hvert fald huske at dine ini-variable er sat. Hvis du ikke har adgang til ini-filen, så brug følgende:

ini_set('SMTP', 'smtp.din_udbyder.dk');
ini_set('sendmail_from', 'din@email.dk');
Avatar billede Slettet bruger
30. november 2003 - 00:42 #15
Godt at du fik det løst.

Til en anden gang, kan følgende kommando også være rar:

tail -f /var/log/mail

Den starter du bare i din ssh, lige før du afprøver scriptet, og så kan du se tilføjelserne i logfilen "live".
Avatar billede ztyxx Nybegynder
30. november 2003 - 12:05 #16
så kommer der et svar herfra :-)
Avatar billede ztyxx Nybegynder
30. november 2003 - 12:24 #17
takker for point :-)
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