skrypt zamiast funcji mail()

sivylasic

No avatar

2006-04-03 17:16

witam
kontaktujac sie z moim hostingiem dowiedzialem sie ze na ich zerwerze ten skrypt zastepuje funkcje mail()
mam prosbe o podpowiedz gdzie go umiescic w kodzie sklepu
z gory dziekuje pozdrwaim

"Ten skrypt ZASTEPUJE dotychczasowa funkcje mail()."

require_once \'Mail.php\';

$params[\'host\'] = \'smtp.nazwa.twojej.domeny\';

$params[\'port\'] = 25;

$params[\'auth\'] = true;

$params[\'username\'] = \'nazwa.uzytkownika@nazwa.twojej.domeny\';

$params[\'password\'] = \'haslo\';



# nagłówki

$headers[\'Subject\'] = \'temat wiadomosci\';

$headers[\'From\'] = \'adres.nadawca@nazwa.TWOJEJ.domeny\';

$headers[\'X-Abuse-To\'] = \'abuse@nazwa.twojej.domeny\';



$body = \'tresc wiadomosci\';



# do jednego adresata

$recipients = \'odbiorca@mail\';

# do wielu adresatow

$recipients = array(\'odbiorca1@mail\', \'odbiorca2@mail\');



$mail = Mail::factory(\'smtp\', $params);



if (PEAR::isError($mail)) {

print $mail->getMessage();

} else {

$error = $mail->send($recipients, $headers, $body);

if (PEAR::isError($error)) {

print $error->getMessage();

} else {

print \'KOMUNIKAT: e-mail został wysłany poprawnie!\';

}

}

TOMEK

treewood (OpenSolution)

Avatar: treewood

2006-04-03 19:15

w funkcji sendEmail() w core/other.php. bedziesz musial ten kod troche przerobic gdyz nie bedzie wspolgral do konca z sendEmail(). Moze sproboj sciagnac oryginalny kod z pear.php.net

FairFaX

No avatar

2006-04-04 23:25

podaje kod jak ja to zrobilem, musisz tylko pozmieniac kilka rzeczy i powinno chodzic.
Musisz ten kod wstawic w odpowiednim miejscu.

require_once 'Mail.php';

$params['host'] = 'smtp.domeny.org';
$params['port'] = 25;
$params['auth'] = true;
$params['username'] = 'info@centrummaszyn.pl';
$params['password'] = 'haslo';

$headers['Subject'] = $sTopic.' Od: '.$sSender;
$headers['From'] = 'info@centrummaszyn.pl';
$headers['To'] = $sTargetEmail;

$body = $sMailContent;

$recipients = $sTargetEmail;


$mail = Mail::factory('smtp', $params);

if (PEAR::isError($mail)) {
$content = $tpl->tbHtml( $sFile, 'SEND_ALERT' );
}
else {
$error = $mail->send($recipients, $headers, $body);
if (PEAR::isError($error)) {
$content = $tpl->tbHtml( $sFile, 'SEND_ALERT' );
}
else {
$content = $tpl->tbHtml( $sFile, 'SEND_GOOD' );
}
}

FairFaX Design

treewood (OpenSolution)

Avatar: treewood

2006-04-05 07:14

Podaje przykladowe rozwiazanie zastapienia funkcji MAIL, ktora np. nie obsluguje Twoj serwer PEAR'owska paczka MAIL. Jesli za grosz nie znasz sie na PHP to lepiej sie tego nie chwytaj! Poszczegolne kroki:

1. Trzeba sciagnac paczke Mail (testowane na wersji 1.1.9) oraz zalezne od niego inne paczki (dependies) m.in. Pear - http://pear.php.net/package/Mail

2. Po instalacji paczki Mail oraz zaleznych paczek trzeba podmienic kod w Quick.Cart'ie w core/other.php a dokladnie funkcje sendEmail( ). W Quick.Cart v1.2 ma wygladac ta funkcja tak:

<?php
function sendEmail$aForm$sFile 'contact_send.tpl'$sTargetEmail null ){
  global 
$tpl;
  
extract$aForm );
  
  if( 
checkLength$sTopic) === true && checkLength$sMailContent) === true && checkEmail$sSender ) == true ){

    if( !isset( 
$sTargetEmail ) )
      
$sTargetEmail EMAIL;
    
    
$sMailContent changePolishToIso$sMailContent );
    
$sTopic changePolishToIso$sTopic );

    require_once 
'Mail.php';

    
$aData['host'] = 'domena.com'// np. adres smtp Twojego serwera
    
$aData['port'] = 25;
    
$aData['auth'] = true;
    
$aData['username'] = 'adres@domena.com'// Twoj adres email
    
$aData['password'] = 'haslo'// haslo do Twojej skrzynki

    
$aHead['Subject'] = $sTopic;
    
$aHead['From'] = $sSender;
    
$aHead['To'] = $sTargetEmail;

    
$oMail Mail::factory'smtp'$aData );

    if( 
PEAR::isError$oMail ) ){
      
$content $tpl->tbHtml$sFile'SEND_ALERT' );
    }
    else{
      
$mError $oMail->send$sTargetEmail$aHead$sMailContent );
      if( 
PEAR::isError$mError ) ){
        
$content $tpl->tbHtml$sFile'SEND_ALERT' );
      }
      else{
        
$content $tpl->tbHtml$sFile'SEND_GOOD' );
      }
    }
  }
  else
    
$content $tpl->tbHtml$sFile'WRONG_WORD' );
  return 
$content;
// end function sendEmail
?>



Prosze pamietac by umiescic z paczki:
- PEAR - plik PEAR.php w glownym katalogu sklepu
- MAIL - plik Mail.php w glownym katalogu sklepu, katalog Mail wgraj normalnie tak by jego zawartosc (pliki) znalazla sie w katalogu Mail w sklepie
- Net_SMTP - plik SMTP.php wgraj do katalogu Net w sklepie (jesli katalogu nie ma to go utworz)
- Net_Socket - plik Socket.php wgraj do katalogu Net w sklepie

Po pewnym czasie moze cos sie zmienic. Ja robilem to na przykladzie paczek w wersji:
- PEAR 1.4.9
- MAIL 1.1.9
- Net_SMTP 1.2.8
- NET_Socket 1.0.6

tomek

Avatar: tomek

2006-04-05 11:37

dzieki wielki mam tylko pytanie czy na wersji 0.3.1 tez bedzie dzialac?? bo takowa posiadam i zapomnialem podac

tomek

treewood (OpenSolution)

Avatar: treewood

2006-04-05 14:24

mysle, ze tak ale glowy nie dam. sproboj to sie okaze :)

Tomek

Avatar: Tomek

2006-04-05 15:29

dziekuje za pomoc, instalacja step by step byla latwa i przyjemna wszysko smiga :)

pozdrawiam i dzieki jesio raz

tomek

Do góry
o nas | kontakt