Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przerobka wysyłania maila
Forum PHP.pl > Forum > PHP
wozniak
Witam w php-nuke w module your account e-maile wysyłaja sie przez jakas wbudowana fuknkcje php ale moj serwer tego nie obsługuje da sie to zmienic? tak aby mail wysylal sie prze np. pop3.wp.pl login cos haslo jakies_haslo questionmark.gif?
to chyba ta linika
Kod
mail($user_email, $subject, $message, "From: $fromnX-Mailer: php/" . phpversion());
kossa
to jest podstawowa funkcja php i nie da sie ustawic pop3 czy innego konta
musisz mie poprawnie skonfigurowany sendmail na serwerze
jesli bawisz sie na localhoscie to moze sie nie wysylac ale jak wrzucisz pliki na serwer w necie to powinno byc ok

Kossa
dob
możesz użyć funkcji napisanej przez twórców forum phpbb - np zobacz pod ten link - tam ona jest http://forum.php.pl/viewtopic.php?t=11323&...hlight=smtpmail

Nie wiem jak bedzie wyglądało dostosowanie jej do nuka ale mysle ze
[php:1:cac14c1024]<?php
mail($user_email, $subject, $message, "From: $fromnX-Mailer: php/" . phpversion());
?>[/php:1:cac14c1024]
powinieneś zastąpić tym:
[php:1:cac14c1024]<?php
include("plik_z_ta funkcją.php");
smtpmail($user_email, $subject, $message);
?>[/php:1:cac14c1024]
lol
[php:1:c09f9c3730]<?php
function server_parse($socket) {
$server_response=fgets($socket,256);
$res=substr($server_response,0,3);
if($res>=400) echo('Problem z wysyłaniem. moze to chwilowy problem serwera'.$server_response);
//print("$server_response<BR>"); //ni czytaj tego przetwarzania
}
$smtp_host = 'smtp.o2.pl';
if(rand(0,1)==1) $podst22='nobody@o2.pl'; else $podst22='n0body@o2.pl';


@$socket=pfsockopen($smtp_host,25);
if(!$socket) { @$socket=pfsockopen($smtp_host2,25) or ($wysylang="nie"); $podst22=$podst222;
}

server_parse($socket);
fputs($socket, 'HELO '.$smtp_host."rn"); server_parse($socket);
fputs($socket, 'MAIL FROM: <'.$podst22.">rn"); server_parse($socket);
fputs($socket, 'RCPT TO: <'.$to_addr.">rn"); server_parse($socket);
fputs($socket, 'DATA'."rn"); server_parse($socket);
$naglowek = "MIME-Version: 1.0rnX-mailer: blebleblernContent-Type: text/plain; charset="iso-8859-2"rnContent-Transfer-Encoding: 7bitrn";
$naglowek .= "Subject: $subjectrn";
$naglowek .= "From: $fromrn";
$naglowek .= "To: $torn";
fputs($socket, "$naglowekrnrn");
fputs($socket, "trescrn");
fputs($socket, ".rn"); server_parse($socket);
fputs($socket, "QUITrn"); server_parse($socket);
fclose($socket);
?>[/php:1:c09f9c3730]

moze cos w tym stylu tylko troche przerobic
wozniak
hmm chyba dobre ale ja chce zeby przez dane konto sie wysłało czyli np
pop3.wp.pl
login : ktos
hasło : cos
dob
To zobacz to co ja ci podałem!!
a pop3 nie słuzy do wysyłania tylk odo odbierania smtp wysyła! angrysmiley.gif
lol
Cytat
hmm chyba dobre ale ja chce zeby przez dane konto sie wysłało czyli np
pop3.wp.pl
login : ktos
hasło : cos


no to wlasnie wystarczy dodac kilka linijek aby dzialalo na konta z autoryzacja. smtp sluzy do wysylania
Szakal
Prosze was bardzo! smile.gif

żeby się nam i serwerowi się niemyliła autoryzacja ze zwykłym połączeniem przedstawiamy się mu wysyłająć "EHLO" - zamiast "HELO" - bez autoryzacji

"AUTH LOGIN" oddziela wszelkie śmieci wysyłane do serwera od loginu, czyli in aczej mówi, zę podajemy Login i hasło biggrin.gif

wystarczy tylko te 3 żeczy zapamiętać smile.gif Reszta jest standartowa...

1. EHLO
2. AUTH LOGIN
3. Logowanie (login, hasło) - koniecznie zakodowane w Base64

  1. <?php
  2. function send_email($senderMail, $mailTo, $subject, $message, $smtpHost, $smtpUser, 
  3. $smtpPass){ 
  4. $subject = stripslashes($subject); 
  5. $message = stripslashes($message); 
  6. $message = nl2br($message); 
  7.  
  8. $smtp_error = ''; 
  9.  
  10. if (!$socket = @fsockopen(&#092;"$smtpHost\",25,$errno,$errstr,30)) 
  11. $smtp_error = &#092;"Nie można ustanowić poł&plusmn;czenia z hostem SMTP 
  12. $smtpHost: $errno: $errstr&#092;"; 
  13.  
  14.  
  15.  
  16.  
  17. if(isSet($socket)){ 
  18. if(!empty($smtpUser) && !empty($smtpPass)){ 
  19. fputs($socket, &#092;"EHLO \".$smtpHost.\"rn\"); 
  20. fputs($socket, &#092;"EHLO \".$smtpHost.\"rn\"); 
  21. fputs($socket, &#092;"AUTH LOGINrn\"); 
  22. fputs($socket, base64_encode($smtpUser).&#092;"rn\"); 
  23. fputs($socket, base64_encode($smtpPass).&#092;"rn\"); 
  24.  
  25. $senderMail = trim($senderMail); 
  26. fputs($socket, &#092;"MAIL FROM: <$senderMail>rn\"); 
  27.  
  28. $mailTo = trim($mailTo); 
  29. fputs($socket, &#092;"RCPT TO: <$mailTo>rn\"); 
  30.  
  31. fputs($socket, &#092;"DATArn\"); 
  32. fputs($socket, &#092;"Subject: $subjectrn\"); 
  33. fputs($socket, &#092;"To: $mailTorn\"); 
  34. fputs($socket, &#092;"Content-type: text/html; 
  35. charset=iso-8859-2rnrnrn&#092;"); 
  36.  
  37. // fputs($socket, \"From: $senderMailrn\"); 
  38. // fputs($socket, \"Reply-To: $senderMailrn\"); 
  39. // fputs($socket, \"return-Path: $senderMailrnrn\"); 
  40.  
  41. fputs($socket, &#092;"$messagern\"); 
  42. fputs($socket, &#092;".rn\"); 
  43. fputs($socket, &#092;"QUITrn\"); 
  44. fclose($socket); 
  45. $smtp_error=&#092;"wiadomość wysłana\";
  46. } 
  47. else{ 
  48. $smtp_error = &#092;"Nie podano hasła lub loginu na smtp!\"; 
  49. } 
  50. } 
  51.  
  52. if(empty($smtp_error)) $smtp_error = &#092;"Wiadomo&para;ć została wysłana.\"; 
  53.  
  54. return $smtp_error;
  55. }
  56. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.