[PHP] mime_mail probleempje

Pagina: 1
Acties:

  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
op het web heb ik een script gevonden waarmee ik emailtjes kan versturen met attachments.

Alleen als ik het script draai krijg ik de volgende warning:
Ik ben nog maar een PHP-newbie en snap van het script niet echt veel. Ik hoop dat jullie de fout kunnen zien.

Warning: Bad Message destination in c:\apache\htdocs\test\test1.php on line 103

Ik gebruik het volgende script
PHP:
1
<?<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>      <title></title></head><body><form action=test1.php method=post ENCTYPE="multipart/form-data" ><table><tr><td>From (name):</td><td><input type=text name=from_name></td></tr><tr><td>From (Email):</td><td><input type=text name=from></td></tr><tr><td>To (name):</td><td><input type=text name=to_name></td></tr><tr><td>To (Email):</td><td><input type=text name=to></td></tr><tr><td>Subject:</td><td><input type=text name=subject></td></tr><tr><td>Message</td><td><textarea name=message>Test message</textarea></td></tr><tr><td>Message (html format)</td><td><textarea name=message_html>&amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt; message</textarea></td></tr><tr><td>Attach file1</td><td><input type=file name=file1></td></tr><tr><td>Attach file2</td><td><input type=file name=file2></td></tr><tr><td>Attach file3</td><td><input type=file name=file3></td></tr></table><input type=submit value=Send></form><?php class CMIMEMail { var $to; var $boundary; var $smtp_headers; var $filename_real; var $body_plain; var $body_html; var  $atcmnt; var $atcmnt_type; function CMIMEMail($to,$from,$subject,$priority=3) {   $this->to=$to; $this->from=$from;   $this->subject=$subject; $this->priority=$priority;   $this->boundary="----=_NextPart_".time()."_".md5(time())."_"; } function  mailbody( $plain, $html="" ) {   $this->body_plain=$plain;   $this->body_html=$html; } function  attach( $name, $content_type, $data ) { } function  attachfile_raw( $fname, $mailFileName, $content_type ) {   if($f=@fopen($fname,"r")) {    $this->atcmnt[$mailFileName]=fread($f,filesize($fname));    $this->atcmnt_type[$mailFileName]=$content_type;    fclose($f);  } } function  attachfile( $fname, $content_type ) {    attachfile_raw($fname,$fname,$content_type); } function  clear() {   unset( $atcmnt );   unset( $atcmnt_type ); } function  makeheader() {   $out ="From: ".$this->from."\n";   $out.="Reply-To: ".$this->from."\n";   $out.="MIME-Version: 1.0\n".    "Content-Type: multipart/mixed;\n\t boundary=\"".$this->boundary."\"\n".        "X-Priority: ".$this->priority."\n".        "X-Mailer: phpMimeMail ( http://www.ziet.zhitomir.ua/~rozhik/php3/mimemail/ )\n";   return $out; } function  makebody() {   $boundary2= "----=_NextAttachedPart_".time()."_".md5(time()+101)."_";   $out="";   if( " ".$this->body_html!=" " ) {     $out="\nThis is a multi-part message in MIME format.\n\n";     $out.="--".$this->boundary."\nContent-Type: multipart/alternative;\n\tboundary=\"$boundary2\"\n";     $out.="$body_plan\n".       "--$boundary2\nContent-Type: text/plain\n".#       "Content-Disposition: inline\n".       "Content-Transfer-Encoding: quoted-printable\n\n".       $this->body_plain.       "\n\n--$boundary2\n".       "Content-Type: text/html\n".#       "Content-Disposition: attachment;\n\tfilename=\"message.html\"\n".           "Conent-Transfer-Encoding: quoted-printable\n".       "\n$this->body_html\n\n".       "--$boundary2--\n";   } else {     $out="\n\n".$this->body_plain."\n\n";     $out.="--".$this->boundary."\n".    "Content-Type: text/plain\n".    "Content-Transfer-Encoding: quoted-printable\n\n".    $this->body_plain.    "\n\n--".$this->boundary.    "\n";   }   if( is_array( $this->atcmnt_type ) ) {     reset( $this->atcmnt_type);     while( list($name, $content_type) = each($this->atcmnt_type) ) {       $out.="\n--".$this->boundary."\nContent-Type: $content_type\nContent-Transfer-Encoding: base64\nContent-Disposition: attachment; filename=\"$name\"\n\n".         chunk_split(base64_encode($this->atcmnt[$name]))."\n";     }   }   $out.="\n--".$this->boundary."--\n";   return $out; } function  send(){   mail("$this->to", "$this->subject", "$this->makebody()", "$this->makeheader()" ); } } $m = new CMIMEMail("$to_name <$to>","$from_name <$from>","$subject"); $m->mailbody($message,$message_html); if( $file1) {$m->attachFile_raw($file1,$file1_name,$file1_type);}; if( $file2) {$m->attachFile_raw($file2,$file2_name,$file2_type);}; if( $file3) {$m->attachFile_raw($file3,$file3_name,$file3_type);}; $m->send(); ?></body></html>?>

-


Verwijderd

volgens mij is het het groene draadje...

  • Grum
  • Registratie: Juni 2001
  • Niet online
Zelfs een gevonden script heeft een schrijver ...

  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
Ik heb de auteur ook gemailed...... maar daar heb ik (nog) geen bericht van gekregen.

Daarom hoopte ik dat ik via deze weg een antwoord kon krijgen op mijn probleem.

-


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Kan je wel normaal mail versturen?

maw Heb je dat daadwerkelijk getest?

Programmer - an organism that turns coffee into software.


  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
Als ik op de send-button druk word de pagina ververst,
dit zou in principe moeten betekenen dat er een mailtje wordt verstuurd.
Echter ik krijg nix binnen, hij doet het helaas dus niet. :'(

-


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Met normaal bedoel ik een test scriptje met alleen
PHP:
1
<?mail("blaat@spamme.nl","subj","text");?>

Programmer - an organism that turns coffee into software.


  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
Op woensdag 08 mei 2002 16:17 schreef LuCarD het volgende:
Met normaal bedoel ik een test scriptje met alleen
PHP:
1
<?mail("blaat@spamme.nl","subj","text");?>
owh sorry, ik had je verkeerd begrepen, maar ik kan wel mail vesturen.
het ligt dus niet aan mijn configuratie.

-


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Oke... wat ik dan denk...

Er mist volgens mij een lege regel aan de eind van de headers. Volgens RFC moet namelijk de headers worden afgesloten met een lege regel.

Heb het niet uit geprobeerd.

Programmer - an organism that turns coffee into software.


  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 10:16
Druk de header eens af, en copy-paste 'em hier ff.

https://niels.nu


  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
Op woensdag 08 mei 2002 16:35 schreef LuCarD het volgende:
Oke... wat ik dan denk...

Er mist volgens mij een lege regel aan de eind van de headers. Volgens RFC moet namelijk de headers worden afgesloten met een lege regel.

Heb het niet uit geprobeerd.
Wat bedoel je met RFC?
Op woensdag 08 mei 2002 17:03 schreef Hydra het volgende:
Druk de header eens af, en copy-paste 'em hier ff.
Dit is het volledige script wat ik gebruik, met dit script zou het dus moeten lukken.
Of ik begrijp je niet echt helemaal.

-


  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
Mag deze omhoog geschopt worden ?

-


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

voeg eens een extra \n toe aan de headers.

dus de functie moet worden:
PHP:
1
<?function  makeheader(){   $out ="From: ".$this->from."\n";   $out.="Reply-To: ".$this->from."\n";   $out.="MIME-Version: 1.0\n".    "Content-Type: multipart/mixed;\n\t boundary=\"".$this->boundary."\"\n".        "X-Priority: ".$this->priority."\n".        "X-Mailer: phpMimeMail ( http://www.ziet.zhitomir.ua/~rozhik/php3/mimemail/ )\n";   $out.="\n";   return $out; }?>

Programmer - an organism that turns coffee into software.


Verwijderd

Op donderdag 09 mei 2002 21:25 schreef FoxzMan het volgende:

[..]

Wat bedoel je met RFC?
[..]
RFC = Requests For Comments.

RFC 2045 en 2060 gaan dacht ik over mail enzo. Er zijn er wel meer die over e-mail gaan, maar deze nummers schieten me zo te binnen :P

http://www.faqs.org/rfcs/

Verwijderd

verkeerde knopje..wou editen, niet quoten :P

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

RFC 822, published in 1982. This was the primary specification for many years. The header format is often called ``822 format.'' However, most implementors don't know what 822 says. 822 allows much more flexibility than a typical mail-reading program can actually handle; meanwhile it imposes restrictions that millions of users violate every day.
RFC 1123, published in 1989. A few corrections to 822.
RFC 2822, published in 2001, also known as 822bis. Replaced 822/1123. 822bis is more misleading than 822 in some areas, less misleading in others.
RFC 822 is de mail rfc. Alle andere (mail relevante) zijn daarop gebaseerd.

Programmer - an organism that turns coffee into software.


  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
Hey dudes, thanx 4 the reply's.

Ik heb wat dingetjes aangepast en het werkt nou goed.

-


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op maandag 13 mei 2002 15:46 schreef FoxzMan het volgende:
Hey dudes, thanx 4 the reply's.

Ik heb wat dingetjes aangepast en het werkt nou goed.
defineer dingetjes... :?

:Y)

Programmer - an organism that turns coffee into software.


  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
Op maandag 13 mei 2002 15:48 schreef LuCarD het volgende:

[..]

defineer dingetjes... :?

:Y)
Het script wat ik heb geleend komt van :

http://www.ziet.zhitomir.ua/~rozhik/php3/mimemail/

Als ik de scripts daarvan letterlijk kopieer, dan krijg ik een warning (zoals in mijn eerste post staat beschreven).
Deze treedt op in regel 54 van mimemail_demo.phps , daar staat de volgende regel:
code:
1
 $m->send();

In de src.phps staat het volgende over deze functie (vanaf regel 100 )
code:
1
2
3
 function  send(){
   mail( $this->to, $this->subject, $this->makebody(),$this->makeheader() );
 }

Deze regels heb ik verwijderd, zodat de warning niet meer voorkomt.
Het mailtje wordt nu naar 1 vast email-adres gestuurd, maar dat is geen probleem ( is wel aan te passen, maar dat is voor mij niet nodig. )

Verder nog wat ietsiepietsie kleine veranderingen, maar niet echt belangrijk. Het belangrijkste is dat het nu werkt zonder warnings. :)

-

Pagina: 1