Avatar billede madsens90 Praktikant
16. december 2009 - 13:37 Der er 14 kommentarer og
1 løsning

Brug af mail() funtion giver fejl. "Relay access denied"?

Hej eksperter!

Jeg har siddet og søgt på google nu, og hver gang jeg tror jeg har fundet et forum som har svaret, så er svaret til en person som bruger en mail client.

Det hænger sådan sammen at jeg næsten lige har installeret IIS + PHP + MYSQL + PHPMYADMIN på min Windows Server 2003, og det hele kører upåklageligt..

Hjemmesiden som jeg har på min server, lå tidligere på en server fra one.com hvor alt også virkede upåklageligt, men efter jeg har flyttet siden virker min mail funtion ikke mere.

Har en side på min hjemmeside der hedder contact.php, som lige nu er blevet flyttet til test.php for at teste, og få mail() funktionen til at virke.

Siden ligger her: www.flashallday.com/test.php

kildekoden til siden ser sådan ud:

<?php
include('top.php');

if($_GET['action'] == "message"){
if(isset($_POST['name']) && isset($_POST['besked']) && isset($_POST['email'])){

$brugernavn = $session->username;

if (mail("flashmaster@shax.dk", "-Contact Us-", "$_POST[besked]")){

echo "<span style='color: FF0000;'>The message is now sent!</span><br><br>";

}else{
echo "<span style='color: FF0000;'>The message was <b>not</b> sent!</span><br><br>";
}
}else{
echo "<span style='color: FF0000;'>You forgot to type in some information!</span><br><br>";
}
}
?>
Please send us an email if you have questions or sugestions!<br>
<br>
<form action="test.php?action=message" method="POST">
<table align="center" style="border: 2 px solid #000000;">
<tr>
<td><b>Navn:</b></td>
<td align="right"><input type="text" name="name" style="width: 210px; height: 20px; font-size: 10px; border: 1px solid #000000; color: #000000;  background-color: #FFFFFF; padding-right: 2px padding-left: 2px;"></td>
</tr>
<tr>
<td><b>Email:</b></td>
<td align="right"><input type="text" name="email" style="width: 210px; height: 20px; font-size: 10px; border: 1px solid #000000; color: #000000;  background-color: #FFFFFF; padding-right: 2px padding-left: 2px;"></td>
</tr>
<tr>
<td colspan="2" align="right">
<textarea rows="8" cols="35" type="text" name="besked" style="font-size: 12px; border: 1px solid #000000; color: #000000;  background-color: #FFFFFF; padding-right: 2px padding-left: 2px;"></textarea>
</td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="button" id="button" value="Send" style="width: 50px; height: 20px; font-size: 10px; border: 1px solid #000000; color: #000000;  background-color: #FFFFFF;" /></td>
</tr>
</table>
</form>
<?php
include('bund.php');
?>

I er velkommen til at prøve at sende mails fra formularen, og se fejlen, og ellers så ser fejlen sådan ud på min skærm:

Warning: mail() [function.mail]: SMTP server response: 554 5.7.1 <flashmaster@shax.dk>: Relay access denied in C:\Inetpub\flashallday\test.php on line 9

Håber i kan hjælpe!!!
Hilsen Christian
Avatar billede madsens90 Praktikant
16. december 2009 - 14:49 #1
Nogen der har en idé?
Avatar billede showsource Seniormester
16. december 2009 - 16:11 #2
I din mail() skal du bruge From også!
http://dk.php.net/manual/en/book.mail.php

Derudover skal SMTP være korrekt defineret i din php.ini ( evt. i dit script )
Avatar billede madsens90 Praktikant
16. december 2009 - 16:17 #3
nu ser mail() sådan ud:

mail("flashmaster@shax.dk", "-Contact Us-", "$_POST[besked]", "FROM: $_POST[email]")

og PHP.INI settings:

[mail function]
; For Win32 only.
SMTP = sdns1.ovh.net
smtp_port = 25

; For Win32 only.
sendmail_from = flashmaster@shax.dk


og det virker desværre stadig ikke. :S
Andre idéer?
Avatar billede madsens90 Praktikant
16. december 2009 - 16:20 #4
Ændrede mail() funktionen til:

mail("flashmaster@shax.dk", "-Contact Us-", "$_POST[besked]", "FROM: $_POST[name] < " . $_POST['email'] . ">")

for at få det til at se mere rigtigt ud.
Avatar billede dkfire Nybegynder
16. december 2009 - 16:49 #5
Sidder du på samme netværk som smtp serveren ?
Kan du tilgå den mail server udefra ?
Kan bruge den som smtp ?

Jegt vil skyde på at når du tester skal du bruge en smtp server fra din udbyder.
Avatar billede madsens90 Praktikant
16. december 2009 - 16:52 #6
Jeg har skrevet til min udbyder og spurgt om en SMTP server, og han sendte derfor dette:

sdns1.ovh.net

Det har jeg derefter skrevet i mine php settings. Og det tyder på at den connecter til mail serveren, da hvis jeg ændre det til noget andet, ændre min fejl sig, og siger den ikke kan connecte til serveren.

Og hvis jeg ændre port siger den også at den ikke kan connecte.

Det er en server i frankrig som jeg bruger, og tror ikke at smtp serveren er på samme netværk.

Hvad mener du med at tilgå den?

Hilsen Christian
Avatar billede discotk Nybegynder
16. december 2009 - 16:57 #7
Prøv evt.

mail("flashmaster@shax.dk", "-Contact Us-", $_POST['besked'], "From: " . $_POST['name'] . " " . "<" . $_POST['email'] . ">" . "\r\n")

Men ville råde dig til at have en statisk email som afsender, ellers bliver de fleste af dine mails du modtager tager af spamfiltre.

Eks.

..."From: din@mail.dk",...
Avatar billede madsens90 Praktikant
16. december 2009 - 18:14 #8
okay. ;) Tak for tippet.

flashmaster@shax.dk er min egen mail, hvor domænet shax.dk også er mit eget, så kan bare lave så senderen er contact@shax.dk f.eks.

Har indsat det du skrev discotk, men det hjælper desværre ikke.

Stadig samme fejl.

Håber virkelig nogen kan hjælpe!! bruger mails til at aktiverer brugere mm, så det er ret vigtigt at det virker!

Tak for hjælpen med det samme. :)
Avatar billede showsource Seniormester
16. december 2009 - 19:01 #9
ehh,
mail("emailadresse", "subject", "besked", "From")

er min. mig bekendt.
Og rækkefølgen er naturligvis afgørende.

Kan du sende eb testnail til dig selv ?

if(mail("flashmaster@shax.dk", "Testmail", "Det virker sgu!", "From:flashmaster@shax.dk")) {
echo"Ok";
}else{
echo"Nix";
}


Prøv evt. med
ini_set("error_reporting", E_ALL);

som det første i dit script.
Avatar billede madsens90 Praktikant
16. december 2009 - 19:17 #10
det har jeg prøvet flere gange. :)

den error der kommer fra php er så den jeg har skrevet:

Warning: mail() [function.mail]: SMTP server response: 554 5.7.1 <flashmaster@shax.dk>: Relay access denied in C:\Inetpub\flashallday\test.php on line 18
Avatar billede dkfire Nybegynder
16. december 2009 - 22:52 #11
Den server du sidder og tester på, står den hjemme hos dig selv ?
I så falæd, har du prøvet at ændre din smtp server til den som din internet udbyder har ?
Avatar billede madsens90 Praktikant
16. december 2009 - 23:00 #12
Den server jeg tester på står i frankrig.. Jeg ved at mit script virkede da jeg havde det på min anden server hos one.com, men efter at jeg flyttede server, så virkede det ikke.

Og jah, min smtp er ændret til den som min internet udbyder i frankrig har.
Avatar billede phliplip Nybegynder
18. december 2009 - 22:22 #13
Kræver din internetudbyders SMTP at man logger ind? Det gør mange SMTP'er efterhånden!
Avatar billede madsens90 Praktikant
19. december 2009 - 14:26 #14
Det ved jeg ikke umiddelbart.

De er lidt langsomme til at svarer på mails så ved det ikke endnu.

Hvis det kræver at man logger ind, hvordan gør jeg så dette via PHP, eller min php.ini configuration?

Hvis dette overhovedet er muligt. :S
Avatar billede madsens90 Praktikant
23. december 2009 - 16:43 #15
Problemet har løst sig!!

Fandt ud af at jeg var nødt til at ændre nogle indstillinger til at pege mod min ISP's SMTP server!

Tak for hjælpen alligevel alle!
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