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
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
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,
Øhm... Resten måtte åbenbart ikke komme med...
Men du kan vel se sammengængen.
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 :-)
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å ?
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);
?>
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.
Vi tilbyder markedets bedste kurser inden for webudvikling