Re: Problem with sending mail with attachment
| From: | Scott Fletcher | Date: | Thu, 18 Mar 2004 14:10:07 +0000 |
| Subject: | Re: Problem with sending mail with attachment | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-180817@lists.php.net to get a copy of this message | ||
I had experience this similar problem with the attachment, as it turned out
that not all email software work out the same way, especially with
MS-Exchange which need an extra "\r" or "\n" for it to work.
For the attachment issue you have. I don't know what Content-Type you're
using because it showed $usehtml. The problem most likely lies with the
Content-Type that aren't specified correctly. For text type, I use
"Content-Type: text/plain; charset=\"iso-8859-1\"\n". If you use html type
then it would be "Content-Type: text/html; <<blah blah>>\n"; I don't
know
if you need to specify the charset type for that type.
FletchSOD
"Shyxu" <shyxu@xuice.info> wrote in message
news:40595265.9060702@xuice.info...
> 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--