cannot mail
Moderator: General Moderators
- twigletmac
- Her Royal Site Adminness
- Posts: 5371
- Joined: Tue Apr 23, 2002 2:21 am
- Location: Essex, UK
current codes for build():
Code: Select all
<?php
function _build()
{
$boundary = 'b'.md5(RandomString(5));
if($this->from !="")
$ret = "From: ".$this->from ."\r\n";
$ret.= 'Content-type:multipart/mixed; ';
$ret.= "boundary = $boundary\r\n\r\n";
$ret.= "This is a MIME encoded message.\r\n\r\n";
$ret.= "--$$boundary";
$ret.= "Content-type: text/plain\r\n";
$ret.= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$ret.= $this->body."\r\n--$boundary";
foreach($this->attachments as $attachment)
{
$attachment['data']= base64_encode($attachment['data']);
$attachment['data']= chunk_split($attachment['data']);
$TYPE = $attachment['type'];
$FILENAME = $attachment['filename'];
$ENCODING = $attachment['encoding'];
$DATA = $attachment['data'];
$data = "Content-type: $TYPE".$FILENAME?"; name = "$FILENAME"":""."\r\n"."Content-Transfer-Encoding:$ENCODING"."\r\n\r\n$DATA\r\n";
$ret.="\r\n--$data--$boundary";
}
$ret.="--\r\n";
return($ret);
}
?>I realized that the concatenation of strings is giving problem, made revision to the $data variable as follows:
and I obtained this in Yahoo:
Code: Select all
<?php
function _build()
{
$boundary = 'b'.md5(RandomString(5));
if($this->from !="")
$ret = "From: ".$this->from ."\r\n";
$ret.= 'Content-type:multipart/mixed; ';
$ret.= "boundary = $boundary\r\n\r\n";
$ret.= "This is a MIME encoded message.\r\n\r\n";
$ret.= "--$$boundary";
$ret.= "Content-type: text/plain\r\n";
$ret.= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$ret.= $this->body."\r\n--$boundary";
foreach($this->attachments as $attachment)
{
$attachment['data']= base64_encode($attachment['data']);
$attachment['data']= chunk_split($attachment['data']);
$TYPE = $attachment['type'];
$FILENAME = $attachment['filename'];
$ENCODING = $attachment['encoding'];
$DATA = $attachment['data'];
$data = "Content-type: ".$TYPE."; name = ".$FILENAME.";\r\n
Content-Transfer-Encoding: ".$ENCODING."\r\n\r\n".$DATA."\r\n";
$ret.="\r\n".$data."\r\n----".$boundary;
}
$ret.="--\r\n";
return($ret);
?>and I obtained this in Yahoo:
Code: Select all
ICA8dGFibGUgYm9yZGVyPTEgYm9yZGVyY29sb3I9IzY2NjY2NiBjZWxscGFkZGluZz0zIGNlbGxz cGFjaW5nPTAgd2lkdGg9NzAwPg0KICAgPHRyPjx0ZCB3aWR0aD02MD48Yj5Td2ltbWluZyBDb21w bGV4PC9iPjwvdGQ+PHRkIHdpZHRoPTE1MCBhbGlnbj1jZW50ZXI+PGI+VGltZTwvYj48L3RkPjx0 ZCBhbGlnbj1jZW50ZXI+PGI+RGF5PC9iPjwvdGQ+PHRkIGFsaWduPWNlbnRlcj48Yj5MZXZlbDwv Yj48L3RkPg0KICAgPHRkIGFsaWduPWNlbnRlcj48Yj5BZ2UgR3JvdXA8L2I+PC90ZD48dGQgYWxp Z249Y2VudGVyPjxiPlVwZGF0ZWQgQ2xhc3MgU2l6ZTwvYj48L3RkPjwvdHI+PHRyPjx0ZD5CZWRv azwvdGQ+PHRkIGFsaWduPWNlbnRlcj44OjAwYW0gdG8gOTowMGFtPC90ZD48dGQgYWxpZ249Y2Vu dGVyPlNhdDwvdGQ+DQogICAgIDx0ZCBhbGlnbj1jZW50ZXI+QmVnaW5uZXJzPC90ZD48dGQgYWxp Z249Y2VudGVyPkdyb3VwIExlc3NvbiBmb3IgQ2hpbGRyZW48L3RkPg0KICAgICA8dGQgYWxpZ249 Y2VudGVyPjQ8L3RkPjwvdHI+PHRyPjx0ZD5CZWRvazwvdGQ+PHRkIGFsaWduPWNlbnRlcj45OjAw YW0gdG8gMTA6MDBhbTwvdGQ+PHRkIGFsaWduPWNlbnRlcj5TYXQ8L3RkPg0KICAgICA8dGQgYWxp Z249Y2VudGVyPkJlZ2lubmVyczwvdGQ+PHRkIGFsaWduPWNlbnRlcj5Hcm91cCBMZXNzb24gZm9y IENoaWxkcmVuPC90ZD4NCiAgICAgPHRkIGFsaWduPWNlbnRlcj40PC90ZD48L3RyPjx0cj48dGQ+ QmVkb2s8L3RkPjx0ZCBhbGlnbj1jZW50ZXI+ODowMGFtIHRvIDk6MDBhbTwvdGQ+PHRkIGFsaWdu PWNlbnRlcj5TdW48L3RkPg0KICAgICA8dGQgYWxpZ249Y2VudGVyPkJlZ2lubmVyczwvdGQ+PHRk IGFsaWduPWNlbnRlcj5Hcm91cCBMZXNzb24gZm9yIENoaWxkcmVuPC90ZD4NCiAgICAgPHRkIGFs aWduPWNlbnRlcj43PC90ZD48L3RyPjx0cj48dGQ+QmVkb2s8L3RkPjx0ZCBhbGlnbj1jZW50ZXI+ OTowMGFtIHRvIDEwOjAwYW08L3RkPjx0ZCBhbGlnbj1jZW50ZXI+U3VuPC90ZD4NCiAgICAgPHRk IGFsaWduPWNlbnRlcj5CZWdpbm5lcnM8L3RkPjx0ZCBhbGlnbj1jZW50ZXI+R3JvdXAgTGVzc29u IGZvciBDaGlsZHJlbjwvdGQ+DQogICAgIDx0ZCBhbGlnbj1jZW50ZXI+NTwvdGQ+PC90cj48L3Rh YmxlPjwvYm9keT48L2h0bWw+seems like the encoded $html chunk cannot be decoded in yahoo. When I echo _build() I get
where as in Yahoo I still get something like
Code: Select all
From: xyz MIME-Version: 1.0 Content-type:multipart/mixed; boundary = b5341808a7ca24ebd7b1bb68c5585a9d9 This is a MIME encoded message. --b5341808a7ca24ebd7b1bb68c5585a9d9Content-type: text/plain Content-Transfer-Encoding: 7bit This is a test mail --b5341808a7ca24ebd7b1bb68c5585a9d9 Content-type: text/html; name = ; Content-Transfer-Encoding: base64 IDxodG1sPjxib2R5PjxiPllvdXIgVXBkYXRlIGFyZSBhcyBmb2xsb3dzPC9iPjxicj48YnI+DQog ICA8dGFibGUgYm9yZGVyPTEgYm9yZGVyY29sb3I9IzY2NjY2NiBjZWxscGFkZGluZz0zIGNlbGxz cGFjaW5nPTAgd2lkdGg9NzAwPg0KICAgPHRyPjx0ZCB3aWR0aD02MD48Yj5Td2ltbWluZyBDb21w bGV4PC9iPjwvdGQ+PHRkIHdpZHRoPTE1MCBhbGlnbj1jZW50ZXI+PGI+VGltZTwvYj48L3RkPjx0 ZCBhbGlnbj1jZW50ZXI+PGI+RGF5PC9iPjwvdGQ+PHRkIGFsaWduPWNlbnRlcj48Yj5MZXZlbDwv Yj48L3RkPg0KICAgPHRkIGFsaWduPWNlbnRlcj48Yj5BZ2UgR3JvdXA8L2I+PC90ZD48dGQgYWxp Z249Y2VudGVyPjxiPlVwZGF0ZWQgQ2xhc3MgU2l6ZTwvYj48L3RkPjwvdHI+PHRyPjx0ZD5CZWRv azwvdGQ+PHRkIGFsaWduPWNlbnRlcj44OjAwYW0gdG8gOTowMGFtPC90ZD48dGQgYWxpZ249Y2Vu dGVyPlNhdDwvdGQ+DQogICAgIDx0ZCBhbGlnbj1jZW50ZXI+QmVnaW5uZXJzPC90ZD48dGQgYWxp Z249Y2VudGVyPkdyb3VwIExlc3NvbiBmb3IgQ2hpbGRyZW48L3RkPg0KICAgICA8dGQgYWxpZ249 Y2VudGVyPjY8L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPg== --b5341808a7ca24ebd7b1bb68c5585a9d9--where as in Yahoo I still get something like
Code: Select all
ICA8dGFibGUgYm9yZGVyPTEgYm9yZGVyY29sb3I9IzY2NjY2NiBjZWxscGFkZGluZz0zIGNlbGxz cGFjaW5nPTAgd2lkdGg9NzAwPg0KICAgPHRyPjx0ZCB3aWR0aD02MD48Yj5Td2ltbWluZyBDb21w bGV4PC9iPjwvdGQ+PHRkIHdpZHRoPTE1MCBhbGlnbj1jZW50ZXI+PGI+VGltZTwvYj48L3RkPjx0 ZCBhbGlnbj1jZW50ZXI+PGI+RGF5PC9iPjwvdGQ+PHRkIGFsaWduPWNlbnRlcj48Yj5MZXZlbDwv Yj48L3RkPg0KICAgPHRkIGFsaWduPWNlbnRlcj48Yj5BZ2UgR3JvdXA8L2I+PC90ZD48dGQgYWxp Z249Y2VudGVyPjxiPlVwZGF0ZWQgQ2xhc3MgU2l6ZTwvYj48L3RkPjwvdHI+PHRyPjx0ZD5CZWRv azwvdGQ+PHRkIGFsaWduPWNlbnRlcj45OjAwYW0gdG8gMTA6MDBhbTwvdGQ+PHRkIGFsaWduPWNl bnRlcj5TYXQ8L3RkPg0KICAgICA8dGQgYWxpZ249Y2VudGVyPkJlZ2lubmVyczwvdGQ+PHRkIGFs aWduPWNlbnRlcj5Hcm91cCBMZXNzb24gZm9yIENoaWxkcmVuPC90ZD4NCiAgICAgPHRkIGFsaWdu PWNlbnRlcj4zPC90ZD48L3RyPjx0cj48dGQ+QmVkb2s8L3RkPjx0ZCBhbGlnbj1jZW50ZXI+ODow MGFtIHRvIDk6MDBhbTwvdGQ+PHRkIGFsaWduPWNlbnRlcj5TdW48L3RkPg0KICAgICA8dGQgYWxp Z249Y2VudGVyPkJlZ2lubmVyczwvdGQ+PHRkIGFsaWduPWNlbnRlcj5Hcm91cCBMZXNzb24gZm9y IENoaWxkcmVuPC90ZD4NCiAgICAgPHRkIGFsaWduPWNlbnRlcj40PC90ZD48L3RyPjwvdGFibGU+ PC9ib2R5PjwvaHRtbD4=the MIME class is working now as I managed to receive proper HTML attachments, however the $this->body i.e. "This is a test mail" does not appear in Yahoo but appears when I echoed build() on localhost and also the message seems to be truncated because I only received a partial HTML attachment as the text before a table is missing. I've been trying to figure out for hours, any assistance would be great.
Code: Select all
<?php
function _build()
{
$boundary = 'b'.md5(uniqid(time()));
if($this->from !="")
$ret = "From: ".$this->from ."\r\n";
$ret.= "MIME-Version: 1.0\r\n";
$ret.= 'Content-type:multipart/mixed; ';
$ret.= "boundary = $boundary\r\n\r\n";
$ret.= "This is a MIME encoded message.\r\n\r\n";
$ret.= "--$boundary";
$ret.= "Content-type: text/plain\r\n";
$ret.= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$ret.= [b]$this->body[/b]."\r\n--$boundary";
foreach($this->attachments as $attachment)
{
$attachment['data']= base64_encode($attachment['data']);
$attachment['data']= chunk_split($attachment['data']);
$TYPE = $attachment['type'];
$ENCODING = $attachment['encoding'];
$DATA = $attachment['data'];
if($attachment['filename']!="")
$FILENAME="name=".$attachment['filename'];
else
$FILENAME="";
$data = "Content-type: ".$TYPE."\r\n".$FILENAME."\r\nContent-Transfer-Encoding: ".$ENCODING."
\r\nContent-Disposition: attachment\r\n".$DATA."\r\n";
$ret.="\r\n".$data."\r\n--".$boundary;
}
$ret.="--\r\n";
return($ret);
}
?>- twigletmac
- Her Royal Site Adminness
- Posts: 5371
- Joined: Tue Apr 23, 2002 2:21 am
- Location: Essex, UK
Try removing:
what do you get then?
Mac
Code: Select all
$attachment['data']= base64_encode($attachment['data']);
$attachment['data']= chunk_split($attachment['data']);Mac
I get this:
Code: Select all
µ¦åyº+uêÕº+uêÜ¢Z+®ºë®œzYii×bž7qée²–œŠxÓ- twigletmac
- Her Royal Site Adminness
- Posts: 5371
- Joined: Tue Apr 23, 2002 2:21 am
- Location: Essex, UK
Oops, also meant to say, change this:
to
Mac
Code: Select all
$this->attachment("",$html,"text/html");Code: Select all
$this->attachment('', $html, 'text/html', 'quoted-printable');