Re: [about mail] I can't see main message either attached file what I
| From: | Xu | Date: | Thu, 18 Mar 2004 09:50:10 +0000 |
| Subject: | Re: [about mail] I can't see main message either attached file what I | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-180796@lists.php.net to get a copy of this message | ||
I solved this problem.
by edit headers and body about boundary.
here's modified source.
******* below this line is php source ********
$boundary42 = md5(rand());
// Headers
$headers = "";
$headers .= "From: $sender <$senderemail>\n";
$headers .= "Subject: $subject\n";
$headers .= "Return-Path: <$senderemail>\n";
$headers .= "Errors-To: <$senderemail>\n";
$headers .= "Content-Type: multipart/related;";
$headers .= " type=\"multipart/alternative\";";
$headers .= " boundary=\"$boundary42\";\n";
// Message
$message .= "--$boundary42\n";
$message .= "Content-Type: $usehtml; charset:EUC-KR;\n";
$message .= "Content-Transfer-Encoding: quoted-printable;\n";
$message .= "\n";
// text goes here
$message .= $ment;
$message .= "\n";
// this ends the message
$message .= "\n";
if ( $_FILES['attach']['error'] === 0 ) {
//??? ??
$tmpName = $_FILES['attach']['tmp_name'];
$fileName = $_FILES['attach']['name'];
$filePath = "./attach/";
$fileSize = $_FILES['attach']['size'];
$AttmFile = $filePath.$fileName;
move_uploaded_file( $tmpName, $AttmFile ) or die( "??? ??" );
// now we add attachments (images, etc)
$message .= "\n\n--$boundary42\n";
$message .= "Content-Type: ".$_FILES['attach']['type']."; name=\"".$fileName."\";\n";
$message .= "Content-Disposition: inline; filename=\"".$fileName."\";\n";
$message .= "Content-Transfer-Encoding: base64;\n";
$message .= "\n";
//file goes here
$fd=fopen ($AttmFile, "r");
$FileContent=fread($fd,filesize($AttmFile));
fclose ($fd);
$FileContent=chunk_split(base64_encode($FileContent));
$message.=$FileContent;
$message .= "\n--$boundary42--\n";
}
while ($co < $Total) {
// SMTP ??
$params['host'] = $smtphost;
$params['auth'] = true;
$params["username"] = $smtpuser;
$params["password"] = $smtppwd;
$mailer = &Mail::factory('smtp', $params);
$mname = mysql_result($rst, $co, 0);
$email = mysql_result($rst, $co, 1);
// $status =$mailer->send($email, $headers, $message);
$status = mail( $email, $Subject, $message, $headers );
if (PEAR::isError($status)) {
$fail++;
$failAddress[] = $email;
$failError[] = $status;
} else {
$success++;
}
$co++;
// echo $email."<br>";
}
Xu ? ?:
I'm using Mail.php which is located in /usr/local/lib/php I made a mail program by php. Which is attaching a file. But I guess there's problem in MIME syntax. I don't know what is wrong... What's the problem? ****** Below this line is php codes. ****** include "Mail.php"; // defines header $headers['Subject'] = $subject; $headers['From'] = $sender." <".$senderemail.">"; $headers['Content-Type'] = "multipart/related"; $headers['Return-Path'] = "<".$senderemail.">"; $headers['Errors-To'] = "<".$senderemail.">"; // message $message .= "------=MIME_BOUNDRY_message_parts\n"; $message .= "Content-Type: $usehtml; \n"; $message .= "Content-Transfer-Encoding: quoted-printable\n"; $message .= "\n$ment\n"; $message .= "------=MIME_BOUNDRY_message_parts--\n\n"; // Attachments if ( $_FILES['attach']['error'] === 0 ) {//Upload and Attach $tmpName = $_FILES['attach']['tmp_name']; $fileName = $_FILES['attach']['name']; $filePath = "./attach/"; $fileSize = $_FILES['attach']['size'];$AttmFile = $filePath.$fileName;move_uploaded_file( $tmpName, $AttmFile ) or die( "upload failed" );// now we add attachments $message .= "\n\n------=MIME_BOUNDRY_main_message\n"; $message .= "Content-Type: ".$_FILES['attach']['type'].";name=\"".$fileName."\";\n";$message .= "Content-Disposition: attachment;filename=\"".$fileName."\";\n\n";$message .= "Content-Transfer-Encoding: base64;\n"; $message .= "\n";//file goes here $fd=fopen ($AttmFile, "r"); $FileContent=fread($fd,filesize($AttmFile)); fclose ($fd); $FileContent=chunk_split(base64_encode($FileContent)); $message.=$FileContent; $message .= "\n------=MIME_BOUNDRY_main_message\n";} // SMTP Connection $params['host'] = $smtphost; $params['auth'] = true; $params["username"] = $smtpuser; $params["password"] = $smtppwd; $mailer = &Mail::factory('smtp', $params); $email = "shyxu@xuice.info"; # use my email address for test. // send and check status $status =$mailer->send($email, $headers, $message); if (PEAR::isError($status)) {echo "fail"; $fail++;} else {echo "success"; $success++;} ****** Below this line is what I sent. ****** Return-Path: <shyxu@xuice.info> Delivered-To: shyxu@xuice.info Subject: <C0><FC><C3><BC><B8><DE><C0><CF> <C5><D7><BD><BA><B6><D1> From: <C1><F8><C5><C2> <shyxu@xuice.info> Content-Type: multipart/related Errors-To: <shyxu@xuice.info> ------=MIME_BOUNDRY_message_parts Content-Type: text/html; Content-Transfer-Encoding: quoted-printable 5G4B1d0!.. <b>EW=:6Q</b> EW=:F.6s4O1q... :83;Av6u8;@L>_!! ------=MIME_BOUNDRY_message_parts-- ------=MIME_BOUNDRY_main_message Content-Type: application/octet-stream; name="README"; Content-Disposition: attachment; filename="README" Content-Transfer-Encoding: base64 xu3B/cC6IEdMSUJDIDEuMDkgQmV0YSC59sD8IL+1ua7Gx8C7ILHiwdjAuLfOIMfPv7S9wLTPtNku DQrC98DMwaHAuiDBtrHdu9PAzLHiILanua6/oSCwxcDHILCwtNmw7SC6uL3DuOkgtcu0z7TZLg0K wM+53SDDpcDaIMWpseLAziBCNbfOIMbtwf3AzCC1x77uIMDWvu68rQ0Kt7nAzMD6IMfBuLDFzbfO IMPit8LH2LytILmtwLi46SCx17Trt84gw6XAzCC1y7TPtNkuDQq/wMDaILz2waTAuiC0q7+hILbn tMKwzSC47rCzuLggx9Egu/PFwrbzIMDawdYgurjAzMH2uLgNCrHXt7iw1CDFqyC5rsGmtMIgvvjA u7DNILCwsO0NCsfUvPYgv+S+4CC6zrrQKMDMsMcgv7W5rsbHwMcgx9i057rOutDAuyDAzrzix9i8 rSC1obrZwMy9w7HmKSwNCsL8sO3AxyDCyrz2IMH2waSw+iDH1Lz2LCC6r7z2IElOREVYILXuwMwg vvi9wLTPtNkuDQqx17DNtem4uCC52bfOIMDitMK02bjpIL/Puq7H2MH2sNrB9ri4DQqx17eyIL3D sKPAzCC++LDtILbHILPKuasgwfbDxLytILj4x8+w2rG6v+QuDQqx17PJILq4vLy/5C4uLi4uLS07 DQrD4rfCx8+9xyC2qSBnbGliY3RpdC5od3AsIGdsaWJjaWR4Lmh3cCwgZ2xpYmMuaHdwuKYNCrz4 vK2067fOIMPit8LHz73DuOkgtcu0z7TZLg0Kvue46SDAzrziuKYgx8+w7SC9zcC4vcO46SAowM+5 3cD7wM4gsOa/7CkNCsOzwL2/oyDAzrzivcO/obytIMKmvPbCysC7ILjVwPogwM684sfPvcOw7Q0K tNnAvb+hIMimvPbCysC7IMDOvOLHz73DuOkgwve3yrTrt84gs6q/zSDA1sC7sMy0z7TZLg0Ksde3 syC1tb/yILXHvMyx5iC52bb4tM+02S4NCg0KICAgICAgICAgICAgICAgICAgICBSQUdOQVJvS0Bo aXRlbC5rb2wuY28ua3INCiAgICAgICAgICAgICAgICAgICAgwfe+vr+hvK0guvO11bTrtMIgvu62 ssDMDQo= ------=MIME_BOUNDRY_main_message