30. september 2003 - 13:02
Der er
23 kommentarer og 2 løsninger
smtp server til mail()
hvor skal jeg sætte det? Har det til at virke i windows, men den vil ikke på min debian installation.
Annonceindlæg fra Kingston Technology
30. september 2003 - 13:03
#1
i PHP.ini tror jeg man kan... ellers kan du bare skrive din egen SMTP class ;) Morten
30. september 2003 - 13:04
#2
PHP.ini sller skriv din egen SMTP klasse. Maxsten
30. september 2003 - 13:05
#3
men hvor i php.ini [mail function] ; For Win32 only. SMTP = localhost for det er vel ikke her? og har prøvet uden held, hvor jeg sætter den til vip.cybercity.dk
30. september 2003 - 13:08
#4
ok - så må du skrive din egen SMTP klasse / funktion - kan godt guide dig hvis du vil (over MSN?) Maxsten -> flot - du kan kopiere mit svar ! Morten
30. september 2003 - 13:15
#5
så det er kun i windows, det er så bekvemt ? du kan se min msn adresse på ebruger
30. september 2003 - 13:19
#6
har addet dig (undskyld for den fuckede msn email) Morten
30. september 2003 - 16:03
#7
Her er en smtp-klasse jeg selv bruger: <?php // smtp_client class ------------------------------------------------------- // use: // $smtp= new smtp_client(); // $smtp->email($from, $to[0], $to_name[0], $header[0], $subject[0], $body[0]); // $smtp->email($from, $to[1], $to_name[1], $header[1], $subject[1], $body[1]); // $smtp->send(); class smtp_client { var $connection; var $server; var $elog_fp; var $log_file = './smtp_client.log'; var $do_log = true; /* default constructor */ function smtp_client($server = '') { if (!$server) { $this->server = 'localhost'; } else { $this->server = $server; } $this->connection = fsockopen($this->server, 25); if ($this->connection <= 0) { return 0; } $this->elog(fgets($this->connection, 1024)); $this->elog("HELO xyz\r\n", 1); fputs($this->connection, "HELO xyz\r\n"); $this->elog(fgets($this->connection, 1024)); } function email($from_mail, $to_mail, $to_name, $header, $subject, $body) { if ($this->connection <= 0) { return 0; } $this->elog("MAIL FROM:$from_mail", 1); fputs($this->connection, "MAIL FROM:$from_mail\r\n"); $this->elog(fgets($this->connection, 1024)); $this->elog("RCPT TO:$to_mail", 1); fputs($this->connection, "RCPT TO:$to_mail\r\n"); $this->elog(fgets($this->connection, 1024)); $this->elog("DATA", 1); fputs($this->connection, "DATA\r\n"); $this->elog(fgets($this->connection, 1024)); $this->elog("Subject: $subject", 1); $this->elog("To: $to_name", 1); fputs($this->connection, "Subject: $subject\r\n"); fputs($this->connection, "To: $to_name\r\n"); if ($header) { $this->elog($header, 1); fputs($this->connection, "$header\r\n"); } $this->elog('', 1); $this->elog($body, 1); $this->elog('.', 1); fputs($this->connection, "\r\n"); fputs($this->connection, "$body \r\n"); fputs($this->connection, ".\r\n"); $this->elog(fgets($this->connection, 1024)); return 1; } function send() { if ($this->connection) { fputs($this->connection, "QUIT\r\n"); fclose($this->connection); $this->connection = 0; } } function close() { $this->send(); } function elog($text, $mode = 0) { if (!$this->do_log) { return; } /* Open file */ if (!$this->elog_fp) { if (!($this->elog_fp = fopen($this->log_file, 'a'))) { return; } fwrite($this->elog_fp, "\n-------------------------------------------\n"); fwrite($this->elog_fp, " Sent " . date("Y-m-d H:i:s") . "\n"); fwrite($this->elog_fp, "-------------------------------------------\n"); } /* Write to log */ if (!$mode) { fwrite($this->elog_fp, " $text\n"); } else { fwrite($this->elog_fp, "$text\n"); } } } ?>
30. september 2003 - 16:21
#8
har selv snakket med riversen over MSN - og har givet ham dette link
http://mfa.ath.cx/LIB/smtpMail.phps nogle funktioner jeg engang har skrevet ;) (link til min workstation - ikke oppe 24/7)
Morten
02. oktober 2003 - 13:40
#9
dea_pg: læg lige et svar også
02. oktober 2003 - 17:11
#10
svaa'r ;) Morten
02. oktober 2003 - 20:51
#11
dygtiiiiiig
04. oktober 2003 - 10:18
#12
dea_pg: Kan du ikke lige smide smtpMail.phps her, så kan vi også se dine kreationer når din workstation er nede :-)
05. oktober 2003 - 14:18
#13
googolplex -> hmmm, skal du det nu være nødvendigt ;) - den er ellers oppe ret ofte (alle hverdage fra ca 15:00 til 22:00 - og rigtig længe om weekenderne ;) men hvis I virkelig ikke kan det må I godt få den... Morten
05. oktober 2003 - 14:45
#14
dea_pg: Ja, nu har jeg tjekket 4-5 gange og den har da ikke været oppe endnu :P Du må da meget gerne smide den ;)
05. oktober 2003 - 18:00
#15
(har været andet steds denne weekend) - koden er som følger --- <?php /* ; version: 1.0 ; sidst ændret: 9/3-03 ; ændret af: Morten Fangel ; beskrivelse: indeholder funktionerne ; connectMail([SMTP server) ; sendMail(str rcpt, str text, [str subject, str from]) ; closeMail(NULL) ; saveLog(str filename, [str method]) ; Licens GPL */ $log = ""; $socket = ""; function connectMail($smtpServer="smtp.mail.dk"){ global $log, $socket; $socket = fsockopen($smtpServer,25); $log = "<html><head><title>Log over afsendning af mail</title></head><body><h1>Log over afsendning af mail</h1>"; if($socket){ fputs($socket, "HELO xyz\n"); $log .= fgets($socket, 2000) . "<br>"; $log .= fgets($socket, 2000) . "<br>"; return true; } else{ $log .= "Could not connect!"; return false; } } function sendMail($rcpt, $text, $subject="TestMail", $from="mailrobot@yourserver.tld"){ global $log, $socket; $command = "MAIL FROM: " . $from . "\n"; fputs($socket, $command); $log .= fgets($socket, 2000) . "<br><hr><br>"; $command = "RCPT TO: " . $rcpt . "\n"; fputs($socket, $command); $log .= fgets($socket, 2000) . "<br>"; $command = "DATA\n"; fputs($socket, $command); $log .= fgets($socket, 2000) . "<br>"; fputs($socket, "To: " . $rcpt . "\n"); fputs($socket, "From: " . $from . "\n"); fputs($socket, "Subject: " . $subject . "\n"); fputs($socket, "\n"); fputs($socket, $text . "\n"); fputs($socket, ".\n"); $log .= fgets($socket, 2000) . "<br>"; return true; } function closeMail(){ global $log, $socket; fputs($socket, "QUIT\n"); $log .= fgets($socket, 2000) . "<br><hr><br>"; fclose($socket); return true; } function saveLog($filename, $method="w"){ global $log; $fil = fopen($filename, $method); fputs($fil, $log); fclose($fil); return true; } /* EXAMPLE connectMail("my.smtp.com"); sendMail("john@doe.com", "dette er en test amil", "testmail", "from@mit-domain.dk"); sendMail("foo@bar.com", "testen af alle tests", "testen", "fra@mit-domaine.dk"); closeMail(); saveLog("myMailLog.log"); */ ?> --- Morten
05. oktober 2003 - 18:17
#16
Takker :)
11. oktober 2003 - 09:53
#17
dea_pg: har en situation, hvor din mail funktioner fejler...måske du evt. lige kan hoppe på msn.
11. oktober 2003 - 10:07
#18
skulle lige spise morgenmad... ;) er på nu... (som du har opdaget)
11. oktober 2003 - 10:27
#19
har lige 'sniffet' min egen mail afsendelse... mail sendt fra morten_fangel@tdcadsl.dk til: spam@riversen.dk via: smtp.mail.dk !> = fra mig < = fra server --- < 220 pfepc.post.tele.dk ESMTP !> EHLO tdcadsl.dk < 250-pfepc.post.tele.dk < 250-PIPELINING < 250-SIZE 10000000 < 250-VRFY < 250-ETRN < 250-XVERP < 250 8BITMIME !> MAIL FROM:<morten_fangel@tdcadsl.dk> < 250 Ok !> RCPT TO:<spam@riversen.dk> < 250 Ok !> DATA > 354 End data with <CR><LF>.<CR><LF> !> Message-ID: <3F87BC13.3090206@tdcadsl.dk>Date: Sat, 11 Oct 2003 10:15:15 +0200 // kan undværes !> From: Morten Fangel <morten_fangel@tdcadsl.dk> !> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5b) Gecko/20030827 // kan undværes !> X-Accept-Language: en-us, en // kan undværes MIME-Version: 1.0 !> To: spam@riversen.dk !> Subject: test mail... !> Content-Type: multipart/alternative; !> boundary="------------030908040208020901050308" !> !> This is a multi-part message in MIME format. !> --------------030908040208020901050308 !> Content-Type: text/plain; charset=ISO-8859-1; format=flowed !> Content-Transfer-Encoding: 8bit !> !> dette er en testmail... sendt menst etherreal kørte ;) !> !> Morten !> !> --------------030908040208020901050308 !> Content-Type: text/html; charset=us-ascii !> Content-Transfer-Encoding: 7bit !> !> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> !> <html> !> <head> !> <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"> !> <title></title> !> </head> !> <body text="#000000" bgcolor="#ffffff"> !> dette er en testmail... sendt menst etherreal kørte ;)<br> !> <br> !> Morten<br> !> </body> !> </html> !> !> --------------030908040208020901050308-- !> !> . < 250 Ok: queued as 8C5322629C9 !> QUIT < 221 Bye --- Morten
22. januar 2004 - 02:16
#20
dea_pg> hvad gør man når smtp-serveren kun godtager standarden \r\n?
22. januar 2004 - 02:27
#21
jeg sidder og roder med en multipart/alternative mail.. jeg kan vælge mellem: at bruge \r\n, og emailen går fint igennem men blir grim i ret mange mailklienter eller kun at bruge \n og smtp-serveren vil ikke godtage min headers hvordan har du dog sendt den htmlmail du omtaler der?
22. januar 2004 - 14:49
#22
brug \n\r i headers og \n i mailen... det er standard at alle smtp (og html) skal afslutte header-linier med \n\r ved det ik... Morten
22. januar 2004 - 15:14
#23
ok. ikke \r\n?.. du bruger kun \n herover ser jeg kan jeg få dig til at vise mig hvordan du har sendt den htmlmail du med success fik sendt? evt. script Jeg giver gerne point :)
22. januar 2004 - 15:17
#24
22. januar 2004 - 15:25
#25
mailen er sendt med mail sendt via et mail-prog, men trafikken er så opsnappet med en sniffer... (etherreal) men der skal være \n\r mellem headere osv... men i selve mailen er det lige meget - det er mail prog. der skal lege med det... Morten
Vi tilbyder markedets bedste kurser inden for webudvikling