Avatar billede keplerdreng Nybegynder
26. juni 2006 - 16:18 Der er 6 kommentarer og
1 løsning

Mail function - kan ikke finde fejlen her

Ideen er en oprettelsesformular, der ved submit sender mail til personen som har oprettet sig.

Men den vil ik helt som mig :(


Kode:

//get defaultAdmin record                        $adminDetails=getDefaultAdmin();
    $admin_fname=$adminDetails['admin_firstName'];
    $admin_lname=$adminDetails['admin_lastName'];
    $email=$adminDetails['admin_email'];
    $headers  = "Content-type: text/html; charset=iso-8859-1\r\n";   
        $subject = "Job-Bank - " . $student_profileid . " New  Profile added";

$message='<html><head></head><body>Dear ' . $admin_fname .' '. $admin_lname .',<br><br>A new profile with the Id - ' . $student_profileid . ' has been added to the Job-Bank database. Check it at the earliest to see if all the information provided is correct and as per regulations, and approve it so that it becomes available to outsiders for selection.<br><br>Use All Profiles link in the Job-Bank application to see all the profiles in the database.<br><br>With regards from<br>WebAdmin - site</body></html>';
mail($email, $subject, $message, $headers);

og fejlen:

PHP Warning: mail() [function.mail]: Failed to connect to mailserver at "***mail.***.local" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\********\English\register.php on line 491
Avatar billede Slettet bruger
26. juni 2006 - 16:29 #1
Nu virker det som om det er din egen webserver det køre på?
Grunden er at du ikke har udfyldt hvilken smtp server dine mail skal sendes igennem.

Hvis du har TDC, skal du f.eks. ændre smtp serveren til smtp.mail.dk i php.ini
Avatar billede tausen Nybegynder
26. juni 2006 - 16:31 #2
Hej.

Nu er det begrænset hvor mange kommandoer jeg kender i PHP, men jeg benytter selv en meget simpel en som denne:

$mailtekst = 'Navn: ' . $Kontakt_FuldtNavn . "\n" . 'Adresse: ' . $Kontakt_Adresse . "\n" . 'By: ' . $Kontakt_By . "\n" . 'Postnummer: ' . $Kontakt_Postnummer . "\n" . 'Tlf.: ' . $Kontakt_Privattelefon . "\n" . 'Hjælpe med kørsel? ' . $koersel . "\n" . 'Deltager? ' . $deltager;
mail("noget@nogen.dk", "Tilmelding til et eller andet", "$mailtekst");

Hvor noget@nogen.dk er den email det skal sendes til,
Avatar billede tausen Nybegynder
26. juni 2006 - 16:36 #3
Øhm... Resten måtte åbenbart ikke komme med...

Men du kan vel se sammengængen.
Avatar billede Slettet bruger
26. juni 2006 - 17:12 #4
han benytter jo også mail() funktionen ligesom dig tausen.
Så der er ikke forskel på jeres eksempler, udover indholdet.

Fejlen er at der ikke er angivet en smtp server, som PHP og i det hele taget alle aplikationer skal benytte for at kunne afsende en mail :-)
Avatar billede keplerdreng Nybegynder
27. juni 2006 - 10:01 #5
Cyperman - tak for rådet og det er sikkert også derfejlen ligger, MEN - hvis nu jeg ikke får lov til at komme igennem på vores netværk, ved kun at definere smtp og port, kan jeg så definere en bruger også ?
Avatar billede Slettet bruger
27. juni 2006 - 10:30 #6
Hvis jeg forstår dig ret, vil du benytte en SMTP server der er bruger/password beskyttet right?

Dette kan du så vidt jeg ved ikke sætte op i php.ini, men du kunne jo åbne en forbindelse og sende brugernavn og password inden du bruger mail funktionen.

En helt anden løsning, er at droppe selve mail() funktionen, og benytte en SMTP klasse, som du kan finde forskellige steder på nettet. Dette er især smart hvis du vil afsende en lang række mails, og undgå timeout.

<?php
function POP_authenticate($username, $password, $server) {
$socket = fsockopen($server, 110); // POP3 port
if (!$socket) {
return "Couldn't connect to $server:110\r\n";
}

$res = fgets($socket, 512); // read +OK
if (substr(trim($res), 0, 3) != "+OK") {
return $res; // return the error
}
fputs($socket, "USER $username\r\n"); // send user
$res = fgets($socket, 512); // read +OK
if (substr(trim($res), 0, 3) != "+OK") {
return $res;
}
fputs($socket, "PASS $password\r\n"); // send pass
$res = fgets($socket, 512); // read +OK
if (substr(trim($res), 0, 3) != "+OK") {
return $res;
}
fputs($socket, "QUIT\r\n"); // quit

### I don't care for errors after quitting :-)

fclose($socket);
return false;
}
?>

and this is an example on how you can use it:

<?php
$username = "netuser";
$password = "pAzw04D";
$POPserver = "pop.server.com";
### php.ini's SMTP must correspond to this server
### and sendmail_from must be from this server (??)

$msg = POP_authenticate($username, $password, $POPserver);
if ($msg === FALSE) {
mail("someone@somewhere.com", "PHP test", "Line 1\nLine 2");
$msg = "mail (probably) sent.\r\n";
}
exit($msg);
?>
Avatar billede keplerdreng Nybegynder
27. juni 2006 - 16:01 #7
Jeg har nu fået adgang til at sende gennem en SMTP, og har defineret den ved ip i min ini fil.

Jeg har testet at jeg kan lave RELAY på den, men med min funtion i koden så modtager jeg ingen mail.
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