שליחת קובץ

hary_i

New member
שליחת קובץ

איך אפשר בעזרת PHP לשלוח קובץ במייל?
 

hary_i

New member
את זה אני מכיר

לקרוא את הספר של PHP אני יודע!!! השאלה הייתה כיצד לשלוח מייל עם קובץ מצורף, לשלוח מייל רגיל אני יודע, אני עושה את זה כל הזמן.
 

kensaggy

New member
נו, בדיוק!

הוא אמר לך על הערות המשתמשים למטה, יש שם דוגמאות של משתמשים של איך לשלוח קבצים במייל.
 

hary_i

New member
החוסר סובלנות שלכם משגע

באמת צורה לענות לאדם על שאלה, אם אני שואל, משמע שלא הבנתי! מדוע אתם חוזרים ואומרים את אותה תשובה? האם זה בגלל שאתם עצמכם לא הבנתם? אשמח אם מישהו יכול להפנות אותי לאיך באמת עושים את זה ולא להגיד זה כתוב שם כאשר זה לא כתוב.
 

kensaggy

New member
מממ...

בבקשה:
/* This might be some useful stuff to send out emails in either text or html or multipart version, and attach one or more files or even none to it. Inspired by Kieran's msg above, I thought it might be useful to have a complete function for doing this, so it can be used wherever it's needed. Anyway I am not too sure how this script will behave under Windows. {br} represent the HTML-tag for line break and should be replaced, but I did not know how to not get the original tag parsed here. function SendMail($From, $FromName, $To, $ToName, $Subject, $Text, $Html, $AttmFiles) $From ... sender mail address like "[email protected]" $FromName ... sender name like "My Name" $To ... recipient mail address like "[email protected]" $ToName ... recipients name like "Your Name" $Subject ... subject of the mail like "This is my first testmail" $Text ... text version of the mail $Html ... html version of the mail $AttmFiles ... array containing the filenames to attach like array("file1","file2") */ $TEXT="This is the first test\n in text format\n."; $HTML="<font color=red>This is the first test in html format.</font>"; $ATTM=array("/home/myself/test/go.jpg", "/home/myself/test/SomeDoc.pdf"); SendMail( "[email protected]","PHP Apache Webmailer", //sender "[email protected]","Recipients Name", //recipient "Testmail", //subject $TEXT,$HTML,$ATTM); //body and attachment(s) function SendMail($From,$FromName,$To,$ToName,$Subject,$Text,$Html,$AttmFiles){ $OB="----=_OuterBoundary_000"; $IB="----=_InnerBoundery_001"; $Html=$Html?$Html:preg_replace("/\n/","{br}",$Text) or die("neither text nor html part present."); $Text=$Text?$Text:"Sorry, but you need an html mailer to read this mail."; $From or die("sender address missing"); $To or die("recipient address missing"); $headers ="MIME-Version: 1.0\r\n"; $headers.="From: ".$FromName." <".$From.">\n"; $headers.="To: ".$ToName." <".$To.">\n"; $headers.="Reply-To: ".$FromName." <".$From.">\n"; $headers.="X-Priority: 1\n"; $headers.="X-MSMail-Priority: High\n"; $headers.="X-Mailer: My PHP Mailer\n"; $headers.="Content-Type: multipart/mixed;\n\tboundary=\"".$OB."\"\n"; //Messages start with text/html alternatives in OB $Msg ="This is a multi-part message in MIME format.\n"; $Msg.="\n--".$OB."\n"; $Msg.="Content-Type: multipart/alternative;\n\tboundary=\"".$IB."\"\n\n"; //plaintext section $Msg.="\n--".$IB."\n"; $Msg.="Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n"; $Msg.="Content-Transfer-Encoding: quoted-printable\n\n"; // plaintext goes here $Msg.=$Text."\n\n"; // html section $Msg.="\n--".$IB."\n"; $Msg.="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n"; $Msg.="Content-Transfer-Encoding: base64\n\n"; // html goes here $Msg.=chunk_split(base64_encode($Html))."\n\n"; // end of IB $Msg.="\n--".$IB."--\n"; // attachments if($AttmFiles){ foreach($AttmFiles as $AttmFile){ $patharray = explode ("/", $AttmFile); $FileName=$patharray[count($patharray)-1]; $Msg.= "\n--".$OB."\n"; $Msg.="Content-Type: application/octetstream;\n\tname=\"".$FileName."\"\n"; $Msg.="Content-Transfer-Encoding: base64\n"; $Msg.="Content-Disposition: attachment;\n\tfilename=\"".$FileName."\"\n\n"; //file goes here $fd=fopen ($AttmFile, "r"); $FileContent=fread($fd,filesize($AttmFile)); fclose ($fd); $FileContent=chunk_split(base64_encode($FileContent)); $Msg.=$FileContent; $Msg.="\n\n"; } } //message ends $Msg.="\n--".$OB."--\n"; mail($To,$Subject,$Msg,$headers); //syslog(LOG_INFO,"Mail: Message sent to $ToName <$To>"); }​
בהצלחה, חן.
 

hary_i

New member
תודה

תודה על התשובה המושקעת האם זה היה במקום אליו הפנו אותי? מעניין שלא ראיתי את זה שם.
 

kensaggy

New member
ממ...

כן, זה היה בדיוק שם, אפילו לא הוספתי\שיניתי כלום, פשוט הדבקתי את זה כמו שזה שם..פשוט צריך לגלול למטה.. בהצלחה, חן.
 

behemot

New member
אם אתה יודע לקרוא אז תיקרא - הכל שם

מישהו פחות סבלני היה כבר קודם כותב לך פשוט RTFM
 
למעלה