Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Modrá je dobrá
zelená je lepší

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub PHP [ŽP: neomezená] (kategorie Programování) moderuje makovec.
Archiv
Diskuse o vybornem skriptovacim jazyku php. Dulezite odkazy, pred polozenim dotazu zkuste hledat odpoved zde:
  1. www.php.net - domovská stránka PHP
  2. www.kosek.cz - spousta tutorialu pro PHP v češtině
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: ancwlny
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
bredy 13.12.2006 09:50  1696
Tak odesílej mail přímo přes SMTP...
Here's how to send an email using SMTP. This includes rudimentary
 checking on server responses during the process of sending an email. 
Could be improved by more comprehensive processing of the result 
codes...or going on to the next mail exchanger when you fail after 
connecting to the first.


<?

function another_mail($to,$subject,$headers,$message)
{
 // Could get this from the php ini?
 $from="me@here.com";
 list($me,$mydomain) = split("@",$from);

 // Now look up the mail exchangers for the recipient
 list($user,$domain) = split("@",$to,2);
 if(getmxrr($domain,$mx,$weight) == 0)  return FALSE;

 // Try them in order of lowest weight first
 array_multisort($mx,$weight);
 $success=0;

 foreach($mx as $host) {
  // Open an SMTP connection
  $connection = fsockopen ($host, 25, &$errno, &$errstr, 1);
  if (!$connection)
   continue;
  $res=fgets($connection,256);
  if(substr($res,0,3) != "220") break;

  // Introduce ourselves
  fputs($connection, "HELO $mydomain\n");
  $res=fgets($connection,256);
  if(substr($res,0,3) != "250") break;

  // Envelope from
  fputs($connection, "MAIL FROM: $from\n");
  $res=fgets($connection,256);
  if(substr($res,0,3) != "250") break;

  // Envelope to
  fputs($connection, "RCPT TO: $to\n");
  $res=fgets($connection,256);
  if(substr($res,0,3) != "250") break;

  // The message
  fputs($connection, "DATA\n");
  $res=fgets($connection,256);
  if(substr($res,0,3) != "354") break;

  // Send To:, From:, Subject:, other headers, blank line, message, and finish
  // with a period on its own line.
  fputs($connection, "To: $to\nFrom: $from\nSubject: $subject\n$headers\n\n$message\n.\n");
  $res=fgets($connection,256);
  if(substr($res,0,3) != "250") break;

  // Say bye bye
  fputs($connection,"QUIT\n");
  $res=fgets($connection,256);
  if(substr($res,0,3) != "221") break;

  // It worked! So break out of the loop which tries all the mail exchangers.
  $success=1;
  break;
 }
 // Debug for if we fall over - uncomment as desired
 // print $success?"Mail sent":"Failure: $res\n";
 if($connection) {
  if($success==0) fputs($connection, "QUIT\n");
  fclose ($connection);
 }
 return $success?TRUE:FALSE;
}

another_mail("recipient@some.domain","My Subject","X-mailer: PHP 
Script\nX-another-header: Whatever","Test email body.\n\nNote if you 
actually put a period on a line\nby itself, the function will 
terminate prematurely.\n\nYou will get a partial email sent 
though.\n");

?>
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 11.12.2006 17:34  1691
WACO [1690]: 200kB je těch příloh - třeba to má dohromady 256kB a to už je uvěřitelné číslo :-), co já vím. Ovšem chyba v kódu asi nebude. Vloží se dvě fotografie, část třetí a zpráva se odešle.
waco 11.12.2006 17:28  1690
Johny_G: No, na 32 bitovým stroji by proměnná neměla odpadnout na 200 kilech jen tak sama od sebe. To je trochu divný číslo. S těma limitama to já jen navrhoval... :) Ani sendmail by neměl mít problém přijmout to přes rouru, pokud to je na *xu. Samozřejmě nepočítám takový ty normální chytáky, jako pozapomenutej znak \0, otočenou podmínku nebo operátor přiřazení namísto rovnosti či ekvivalence. Případně došlý místo na tmp svazku :)
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 11.12.2006 16:02  1688
WACO [1687]: Skládám tělo zprávy jako MIME do proměnné, kterou pak odešlu běžnou funkcí mail(). To ona asi přetekla ta proměnná, co? :-) Jak to tak po sobě čtu.
waco 11.12.2006 12:18  1687
Johny_G: Ja zatim podobne problemy nemel. Ale taky posilam maily do 4kB. Nepises podrobnosti, kterych by se dalo chytit. Napriklad jestli pouzivas nejakou implementovanou supermegaturboultra tridu odjinud nebo si skladas data sam do souboru ci promenne. Pak bys obecne mohl narazet na nejakou konfiguracni promennou "povolena velikot generovaneho mailu" nebo prislusne obecne limity jako maximalni velikost souboru, spotreba pameti skriptu nebo maximalni velikost vraceneho BLOBu.
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 10.12.2006 21:31  1686
Nikdo se s tím nepotkal?
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 8.12.2006 23:53  1685
Jak jsem se nedávno ptal v dotazech na tu velikost přílohy kvůli záloze fotografií z Databáze lopušáků, tak jsem to teď zkusil napsat a kód je sice funkční, ale server se patrně nechce smířit s tím, že mu skládám mail větší než nějakých 200kB. Já se potřebuji dostat někam mezi 1MB a 2MB, ale vždycky se sepíše prvních 200kB a pak se to prostě odešle. Dá se někde v .htaccess, nebo přímo v kódu tento stav ošetřit? Vím, že je to celé prasárna, ale budu to používat jen velmi zřídka, a prostě je potřeba, aby se do toho mailu nacpalo všechno, protože jak to nakrájím, tak už to skoro ztrácí význam...
al3x 21.11.2006 00:53  1684
Ja mluvil o nekonzistenci nazvu existujicich funkci.
viz isset() vs. is_array() - podtrzitko a bez,
array_walk() vs sort() - predpona a bez predpony,
str_ireplace()/str_replace() vs eregi_replace()/ereg_replace() - oznaceni case-insetsitive funkci pomoci 'i' pokazde na jinem miste.
etc...
Ve srovnani s perlem ci snad dokonce pythonem je namespace phpka neuveritelne zaplevelenej.
mach 20.11.2006 20:32  1683
No jo, nekde je prohozene needle a haystack, ale nemyslim, ze bych se nejak casto setkaval s tim, ze se meni nazvy funkci…
al3x 20.11.2006 17:11  1682
V tomhle je PHP zlo.
Nakonzistentni zazvy funkci, zpetna kompatibilita a uz vubec nemluvim o brutalne neefektivni implementaci nejakterych konstrukci (foreach, is_array(), etc).
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 20.11.2006 16:53  1681
je vcelku sranda nahodit novou verzi php kdy si tam kuci z vyvoje pojmenovali funkci par funkci stejne jako ja pred nima :c]
takze je tam funkce filter_input a filter_array_input, tvari se to, ze to usnadni osetreni vstupu ale zatim jsem k tomu moc dokumentace jak prese to funguje nenasel. verze od verze 5.2.0
al3x 17.11.2006 11:56  1680
esoNeboj, nikdo by je tam neukladal.
eso eso 17.11.2006 10:23  1679
Co se týče excelu, tak pokud vztvoříte normální HTML tabulku a na začátek pošlete header:

application/vnd.ms-excel

Tak to prohlížeč otevře normálně v Excelu.
eso eso 17.11.2006 10:20  1678
Já bych ty entity do databáze neukládal, může to přinést řadu problému třeba, např:
- pří třídění
- při operacích, které pracují s délkou řetězce
- u polí s pevně definovanou délkou
- při fulltextovém vyhledávání - dáš vyhledat třeba text copy nebo micro a ono to vypíše i řádky obsahující entity & copy nebo & micro apod.
waco 16.11.2006 23:09  1677
pepakExcelu pri rucnim vkladani se retezec zapise s apostrofem jako prvnim znakem. Uklada se, ale nezobrazi a format bunky se zmeni na text. Takze to zpracovani by s tim asi muselo pocitat, to overene nemam. Jak v csv importu nevim, ale asi pujde neco jako "'007" nebo '\'007'. Ale bacha, u importu zalezi na hodne dalsich nastavenich, vcetne regionalniho...

[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt