Solved

Need help sending email attachment

Posted on 2009-07-10
11
273 Views
Last Modified: 2012-05-07
The code below works fine on my local pc (localhost) - which is Windows XP SP3 with IIS.

When I move it to my hosted site, which is UNIX/Apache, it doesn't work. The email is received, but there is no attachment, and the text of the email shows all of the boundaries and the code for the file. See my next post for what it looks like.
<?php

$fileatt = 'attachments/Invoice-20090415.pdf'; // Path to the file

$fileatt_type = "application/octet-stream"; // File Type

$fileatt_name = 'Invoice-20090415.pdf'; // Filename that will be used for the file as the attachment
 

$to = "alicia@cookingwithalicia.com";

$subject = "Testing email attachment from remote host";

$headers = 'From: info@localhost.com' . "\n";

$headers .= 'Cc: alicia@orangemooncreations.com' . "\n";

$body = "Here is the file" . "\n\n";
 

$file = fopen($fileatt,"rb");

$data = fread($file,filesize($fileatt));

fclose($file);
 

$semi_rand = md5(time());

$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
 

$headers .= "\nMIME-Version: 1.0\n" .

"Content-Type: multipart/mixed;\n" .

" boundary=\"{$mime_boundary}\"";
 

$body .= "This is a multi-part message in MIME format.\n\n" .

"--{$mime_boundary}\n" .

"Content-Type:text/html; charset=\"iso-8859-1\"\n" .

"Content-Transfer-Encoding: 7bit\n\n" .

$body . "\n\n";
 

$data = chunk_split(base64_encode($data));
 

$body .= "--{$mime_boundary}\n" .

"Content-Type: {$fileatt_type};\n" .

" name=\"{$fileatt_name}\"\n" .

//"Content-Disposition: attachment;\n" .

//" filename=\"{$fileatt_name}\"\n" .

"Content-Transfer-Encoding: base64\n\n" .

$data . "\n\n" .

"--{$mime_boundary}--\n";
 

$ok = @mail($to, $subject, $body, $headers);
 

if($ok) {

echo "<font face=verdana size=2>The file was successfully sent!</font>";

} else {

die("Sorry but the email could not be sent. Please go back and try again!");

}

?>

Open in new window

0
Comment
Question by:alicia1234
  • 7
  • 4
11 Comments
 

Author Comment

by:alicia1234
ID: 24828809
Here's what the email looks like when sent through the remote host.

I tried changing some of the "\n" to "\r\n" but I honestly do not understand what I'm doing so I'm just grasping at straws.

MIME-Version: 1.0

Content-Type: multipart/mixed;

 boundary="==Multipart_Boundary_xfd704daf173bbd0a40f7df0b53837be4x"
 
 

Here is the file
 
 

This is a multi-part message in MIME format.
 
 

--==Multipart_Boundary_xfd704daf173bbd0a40f7df0b53837be4x

Content-Type:text/html; charset="iso-8859-1"

Content-Transfer-Encoding: 7bit
 
 

Here is the file
 
 
 
 

--==Multipart_Boundary_xfd704daf173bbd0a40f7df0b53837be4x

Content-Type: application/octet-stream;

 name="Invoice-20090415.pdf"

Content-Transfer-Encoding: base64
 
 

JVBERi0xLjQNJeLjz9MNCjk4IDAgb2JqDTw8L0xpbmVhcml6ZWQgMS9MIDIzNTg3L08gMTAxL0Ug

MTU1MDUvTiAxL1QgMjE1ODAvSCBbIDkzNiAyMTNdPj4NZW5kb2JqDSAgICAgICAgICAgICAgICAg

DQp4cmVmDQo5OCAzMg0KMDAwMDAwMDAxNiAwMDAwMCBuDQowMDAwMDAxMzE5IDAwMDAwIG4NCjAw

MDAwMDE2NDggMDAwMDAgbg0KMDAwMDAwMTgzNyAwMDAwMCBuDQowMDAwMDAyMjY4IDAwMDAwIG4N

CjAwMDAwMDI0MjggMDAwMDAgbg0KMDAwMDAwMjg2OSAwMDAwMCBuDQowMDAwMDAzMzA3IDAwMDAw

IG4NCjAwMDAwMDMzNDQgMDAwMDAgbg0KMDAwMDAwMzM5MSAwMDAwMCBuDQowMDAwMDA0MDI5IDAw

MDAwIG4NCjAwMDAwMDQyMzggMDAwMDAgbg0KMDAwMDAwNDc5MCAwMDAwMCBuDQowMDAwMDA1MzQy

IDAwMDAwIG4NCjAwMDAwMDU4MzEgMDAwMDAgbg0KMDAwMDAwNjM2MSAwMDAwMCBuDQowMDAwMDA2

ODkwIDAwMDAwIG4NCjAwMDAwMDczNjQgMDAwMDAgbg0KMDAwMDAwNzkzMCAwMDAwMCBuDQowMDAw

MDEwNjI0IDAwMDAwIG4NCjAwMDAwMTA3MjQgMDAwMDAgbg0KMDAwMDAxMjgzMSAwMDAwMCBuDQow

MDAwMDE0MjE0IDAwMDAwIG4NCjAwMDAwMTQ0NzAgMDAwMDAgbg0KMDAwMDAxNDY5NCAwMDAwMCBu

DQowMDAwMDE0OTI0IDAwMDAwIG4NCjAwMDAwMTUxNjggMDAwMDAgbg0KMDAwMDAxNTIxMyAwMDAw

MCBuDQowMDAwMDE1MjkxIDAwMDAwIG4NCjAwMDAwMTUzOTUgMDAwMDAgbg0KMDAwMDAwMTE0OSAw

MDAwMCBuDQowMDAwMDAwOTM2IDAwMDAwIG4NCnRyYWlsZXINCjw8L1NpemUgMTMwL1ByZXYgMjE1

NjkvWFJlZlN0bSAxMTQ5L1Jvb3QgOTkgMCBSL0luZm8gNiAwIFIvSURbPDVGRTcwM0VBQUM5QzI2

NDNBRjAyRDg1MzRGQTVDOTEyPjwxQzI5MDYxOTBCQTI1ODQ3ODA0RTYxQTY0QTA1REREQT5dPj4N

CnN0YXJ0eHJlZg0KMA0KJSVFT0YNCg0KMTI5IDAgb2JqDTw8L0xlbmd0aCAxMTkvQyAxMjYvRmls

dGVyL0ZsYXRlRGVjb2RlL0kgMTQ4L0wgMTEwL1MgNDA+PnN0cmVhbQ0KeNpiYGCQYWBgnc0ABGaK

DKiAGYhZGDgOMDAwIonKQDEDgyoDD2djF/vGKZICDAyLIrkOMSsYHpG7+EY6SHCZgH1jqhPvht08

AucZGjRZDDyhupkYGBwfQWgGKwawydZ7IDSbGtwONgaGoEiIKKMwQIABANDYEwANCmVuZHN0cmVh

bQ1lbmRvYmoNMTI4IDAgb2JqDTw8L0xlbmd0aCAyMi9GaWx0ZXIvRmxhdGVEZWNvZGUvV1sxIDEg

MV0vSW5kZXhbNyA5MV0vRGVjb2RlUGFybXM8PC9Db2x1bW5zIDMvUHJlZGljdG9yIDEyPj4vU2l6

ZSA5OC9UeXBlL1hSZWY+PnN0cmVhbQ0KeNpiYmJkYGJgYBzFtMcAAQYAx2oBFA0KZW5kc3RyZWFt

DWVuZG9iag05OSAwIG9iag08PC9NYXJrSW5mbzw8L0xldHRlcnNwYWNlRmxhZ3MgMC9NYXJrZWQg

dHJ1ZT4+L01ldGFkYXRhIDUgMCBSL1BpZWNlSW5mbzw8L01hcmtlZFBERjw8L0xhc3RNb2RpZmll

ZChEOjIwMDkwNDE1MTcwOTQwKT4+Pj4vUGFnZXMgNCAwIFIvUGFnZUxheW91dC9PbmVDb2x1bW4v

T0NQcm9wZXJ0aWVzPDwvRDw8L1JCR3JvdXBzW10vT3JkZXJbXT4+L09DR3NbMTAwIDAgUl0+Pi9T

dHJ1Y3RUcmVlUm9vdCA3IDAgUi9UeXBlL0NhdGFsb2cvTGFuZyj+/wBFAE4ALQBVAFMpL0xhc3RN

b2RpZmllZChEOjIwMDkwNDE1MTcwOTQwKS9QYWdlTGFiZWxzIDIgMCBSPj4NZW5kb2JqDTEwMCAw

IG9iag08PC9Vc2FnZTw8L0NyZWF0b3JJbmZvPDwvU3VidHlwZS9BcnR3b3JrL0NyZWF0b3Io/v8A

QQBjAHIAbwBiAGEAdAAgAFAARABGAE0AYQBrAGUAcgAgADgALgAxACAAZgBvAHIAIABXAG8AcgBk

KT4+L1BhZ2VFbGVtZW50PDwvU3VidHlwZS9IRj4+Pj4vTmFtZShIZWFkZXJGb290ZXIpL1R5cGUv

T0NHPj4NZW5kb2JqDTEwMSAwIG9iag08PC9Dcm9wQm94WzAgMCA2MTIgNzkyXS9QYXJlbnQgNCAw

IFIvU3RydWN0UGFyZW50cyAwL0NvbnRlbnRzWzEwNyAwIFIgMTA5IDAgUiAxMTAgMCBSIDExMSAw

IFIgMTEyIDAgUiAxMTMgMCBSIDExNCAwIFIgMTE1IDAgUl0vUm90YXRlIDAvTWVkaWFCb3hbMCAw

IDYxMiA3OTJdL1Jlc291cmNlczw8L1hPYmplY3Q8PC9JbTAgMTE4IDAgUj4+L0NvbG9yU3BhY2U8

PC9DUzAgMTA1IDAgUi9DUzEgMTA2IDAgUj4+L0ZvbnQ8PC9UVDAgMTAyIDAgUi9UVDEgMTAzIDAg

Ui9UVDIgMTA0IDAgUi9UVDMgMTA4IDAgUj4+L1Byb2NTZXRbL1BERi9UZXh0L0ltYWdlQy9JbWFn

ZUldL1Byb3BlcnRpZXM8PC9NQzAgMTI0IDAgUj4+L0V4dEdTdGF0ZTw8L0dTMCAxMjUgMCBSL0dT

MSAxMjYgMCBSL0dTMiAxMjcgMCBSPj4+Pi9UeXBlL1BhZ2U+Pg1lbmRvYmoNMTAyIDAgb2JqDTw8

L1N1YnR5cGUvVHJ1ZVR5cGUvRm9udERlc2NyaXB0b3IgMTIwIDAgUi9MYXN0Q2hhciAzMi9XaWR0

aHNbMjUwXS9CYXNlRm9udC9FS0JQR0wrQmF1aGF1czkzL0ZpcnN0Q2hhciAzMi9FbmNvZGluZy9X

aW5BbnNpRW5jb2RpbmcvVHlwZS9Gb250Pj4NZW5kb2JqDTEwMyAwIG9iag08PC9TdWJ0eXBlL1Ry

dWVUeXBlL0ZvbnREZXNjcmlwdG9yIDEyMSAwIFIvTGFzdENoYXIgMTIxL1dpZHRoc1szMTMgMCAw

IDAgNTQ2IDAgMCAwIDAgMCAwIDAgMzAzIDM2MyAzMDMgMzgyIDU0NiA1NDYgNTQ2IDU0NiA1NDYg

NTQ2IDU0NiA1NDYgNTQ2IDU0NiAzNTQgMCAwIDAgMCAwIDAgNjAwIDU4OSA2MDEgNjc4IDU2MSAw

IDY2NyA2NzUgMzczIDAgMCA0OTggNzcxIDY2NyAwIDU1MSAwIDYyMSA1NTcgNTg0IDY1NiAwIDkw

MiAwIDAgMCAwIDAgMCAwIDAgMCA1MjUgNTUzIDQ2MSA1NTMgNTI2IDMxOCA1NTMgNTU4IDIyOSAy

ODIgNDk4IDIyOSA4NDAgNTU4IDU0MyA1NTMgMCAzNjAgNDQ2IDMzNCA1NTggNDk4IDc0MiAwIDQ5

OF0vQmFzZUZvbnQvVGFob21hL0ZpcnN0Q2hhciAzMi9FbmNvZGluZy9XaW5BbnNpRW5jb2Rpbmcv

VHlwZS9Gb250Pj4NZW5kb2JqDTEwNCAwIG9iag08PC9TdWJ0eXBlL1RydWVUeXBlL0ZvbnREZXNj

cmlwdG9yIDEyMiAwIFIvTGFzdENoYXIgMTIxL1dpZHRoc1syOTMgMCAwIDgxOCAwIDAgMCAwIDAg

MCAwIDAgMzEzIDQzMSAzMTMgMCA2MzcgMCA2MzcgMCA2MzcgNjM3IDAgNjM3IDAgNjM3IDM2MyAw

IDAgMCAwIDAgMCA2ODUgNjg2IDY2NyA3NTcgNjE1IDU4MSAwIDc2NCA0ODMgMCAwIDU3MiA4OTMg

NzcxIDc3MCA2NTcgMCA3MjYgNjMzIDYxMiA3MzkgNjc1IDAgMCAwIDAgMCAwIDAgMCAwIDAgNTk5

IDYzMiA1MjcgNjI5IDU5NCAzODIgNjI5IDY0MCAzMDIgMCA2MDMgMzAyIDk1NCA2NDAgNjE3IDYy

OSAwIDQzNCA1MTUgNDE2IDY0MCA1NzkgODkwIDYwNCA1NzZdL0Jhc2VGb250L1RhaG9tYS1Cb2xk

L0ZpcnN0Q2hhciAzMi9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcvVHlwZS9Gb250Pj4NZW5kb2Jq

DTEwNSAwIG9iag1bL0lDQ0Jhc2VkIDExNiAwIFJdDWVuZG9iag0xMDYgMCBvYmoNWy9JbmRleGVk

IDEwNSAwIFIgMTUgMTE3IDAgUl0NZW5kb2JqDTEwNyAwIG9iag08PC9MZW5ndGggNTY3L0ZpbHRl

ci9GbGF0ZURlY29kZT4+c3RyZWFtDQpIiYyUTY/aMBCG7/4VI/XSHvBXbMeuVitBQC2VWLaN1ctq

D2kIC1UJW6Dd9t93bCcpSBw2kYyV8TzzzjsWbHw4bddVfYKbG1b++nb6+9wA+9hUq+YAbHw6VfWm

WcED8/tneGQ+hu+rp21bnbb7Fthksv8DD7mEXBqqpQYrqNM2g1w5qqwU8Hh7O5kWQCaesGUBbFFw

iB9YUXKoj8DjC8e6JewDfno6EuY9BwF+TUaccs4t+BqEo87Gs2kXimYCi4LfkbcA7/x3MlsgeObT

L5u3P7ZtU24qVI39LYr5FLM7PT+JkpZqi3iRsErRzOGTOXCC5gojWoPJNTW45UZAvUPojsN0Tz6n

GqGr+wEuejg2IFIDPErHLmSSHndacpoJ5xI86R/kn/HyM548N0RFqhmocaeMoRKMymmII3Pe/t5v

6+bcGDxNpRa4aszoTRfB9Mw6ai0YKVCScbgIicuhIes0q6LsZ1UWd4TTXMMLWFigsE8QMDJglMbB

o4xMoZhR5Ix6UCzRx3ZkQ8qhekzrq+fysnqH1pkMfXboeGhAX5RN6MvZuN7LMBgxtC67+9bZG911

wd1ktAb/gqmhawcq59Qo1Kio7Ry++7oM9vYgFBPvqF9hrJidh/BGGd2F4M21adth2l1KUCCCFh5U

jPDuONERpmM/g1cONs+oSc5qBRLFqyveSmd7b4WCUTo2uBsQQ/Cau9q83l4ZW+p2/93Ffw6ZzM1t

NPfLbDH34Jfvh0bhnwADANePB20NCmVuZHN0cmVhbQ1lbmRvYmoNMTA4IDAgb2JqDTw8L1N1YnR5

cGUvVHJ1ZVR5cGUvRm9udERlc2NyaXB0b3IgMTIzIDAgUi9MYXN0Q2hhciA1Mi9XaWR0aHNbMjUw

IDAgMCAwIDUwMCAwIDAgMCAwIDAgMCAwIDAgMCAyNTAgMCA1MDAgMCAwIDAgNTAwXS9CYXNlRm9u

dC9UaW1lc05ld1JvbWFuUFNNVC9GaXJzdENoYXIgMzIvRW5jb2RpbmcvV2luQW5zaUVuY29kaW5n

L1R5cGUvRm9udD4+DWVuZG9iag0xMDkgMCBvYmoNPDwvTGVuZ3RoIDQ4MS9GaWx0ZXIvRmxhdGVE

ZWNvZGU+PnN0cmVhbQ0KSImMk+uK2zAQhf/rKeZnWip5RtbNYVnIjbKwoQXrBULqzbpNXMgalr59

JTl2k10VloCJLembM0dzWPEd7u6K7ephDURwf79cr4AhxB+87DtWfK0lHF5Y4T0BgX9iHAUiOvD7

sMe/AoV3mQ4M/5SRwhgw6IR24d2f2GxVL7hErFDRJ/9zgmpRSRcpP9hMQ1zZbEP5a004ahrPDOVN

LM+JRGUNxE8mQVRBuoiFsiyZZVFCJSrFfnhJQjoaPg3YZdvtzn9g0x3armnObXfIiy3fFsCJTYmN

QbOQqMCv2WzR990cFsd23+6gvvXFTL48Xy+g0NpeFppdXoTKO2b/talSm0aQ05OeaJ6F1XF3/gV1

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

zYTNiZt/yDPJK817vSVsS1e+cv6m/LGtHlubCyQK+AXD22y31WxHbedu799hvmP/jk+F7MJrRSZF

5UUfilnF174y/ariq4WdsTv7SyxLDu7C7OLtGtrtsPtoqXRpTunYHt897WX0ssKy13uj9l4tX1Ze

s4+wT7hvpMKnonO/5v5d+z9UxlfeqXKuaq1Wqt5RPXeAfWDwoOPBlhrlmqKa94e4h+7WetS212nX

lR/GHM44/LQ+tL73a8bXjQ0KDUUNH4/wjowcDTza02jV2Nik1FTSDDcLm6eORR67+Y3rN50thi21

rbTWouPguPD4s2+jvx064X2i+yTjZMt3Wt9Vt1HaCtuh9uz2mY74jpHO8M6BUytOdXfZdrV9b/T9

kdNqp6vOyJ4pOUs4m3924VzOudnzqeenL8RdGOuO6n5wcdXF2z0BPf2XvC9duex++WKvU++5K3ZX

Tl+1uXrqGuNax3XL6+19Fn1tP1j80NZv2d9+w+pG503rm10DywfODjoMXrjleuvyba/b1++svDMw

FDJ0dzhyeOQu++7kvaR7L+9n3J9/sOkh+mHhI6lH5Y+VHtf9qPdj64jlyJlR19G+J0FPHoyxxp7/

lP7Th/H8p+Sn5ROqE42TZpOnp9ynbj5b/Wz8eerz+emCn6V/rn6h++K7Xxx/6ZtZNTP+kv9y4dfi

V/Kvjrxe9rp71n/28ZvkN/NzhW/l3x59x3jX+z7s/cR85gfsh4qPeh+7Pnl/eriQvLDwmwADAPeE

8/sKDQplbmRzdHJlYW0NZW5kb2JqDTExNyAwIG9iag08PC9MZW5ndGggNDk+PnN0cmVhbQ0KAAAA

////ADNmMzMzZmZmmZmZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACg0KZW5kc3RyZWFt

DWVuZG9iag0xMTggMCBvYmoNPDwvU3VidHlwZS9JbWFnZS9MZW5ndGggMTk1MC9GaWx0ZXIvRmxh

dGVEZWNvZGUvQml0c1BlckNvbXBvbmVudCA0L0NvbG9yU3BhY2UgMTA2IDAgUi9XaWR0aCA1NzUv

SGVpZ2h0IDYwL1R5cGUvWE9iamVjdD4+c3RyZWFtDQpo3uybbXabOhCG1yC7CwiSsgBL7v9eTDaQ

pPvfyp1PfYAEuHGctMc+bUDDzDujByEEx7b28Vn5PD0QPPg8+Dz4PPh89BPDJ/Nx7QwuxnY9se3c

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

h/Oj/dgtewR5CKUgqL0+lOhX/A91n39ZOIwiyFMIyQHXvMRzkrMyISTfS4lZtH1N+Zj4SJ1KrUgt

sN5huhiP1KhwltpmTdnXVJ6+qiLkt4nodYZVJAf0kt87ZkB9TBgiTiwmjpJvrzWkvqc8R3lTjjNO

CW+JwZxQ5K2Sjqt3UL5KDBFfks+PjGGA9rOEIhYaR+0wDpJSTxKbfR6LK6OWpbWS70lpvyreO7sA

S9kUPyL8nqizPHcLLooqJ9uOVsa1WDba4g5YUHGhQjCmxKbMnXI7EVPPx0bO2LVXXouZ4atTgg/U

rdef68+/PLm/rdw/2o2sNmpqBuFg3Gbhf94MvODXBOfj+X7u1/9m7AYw/hFEsWvMuwijNw4Lk9lT

4S6T+bbndIf6csmCibB3D2pCXZHJc6GukY+ToW5x/P1QF7YXQ92Bp1y589Skt2U7Eq3J+d7ydKar

taWpOeuVlZfHvC1dHu0r1izbsHJtybJEe3Oiva08Nl4ftahGPTeqQRrbkEUHEmhFEvM5tpxjGXSx

34ImNNPqoQzlfGLUttDihfNXYA2WYQNWYi1KqCXQTn/5bQu8q7liE3vbg9XH8/6v9lxWVD7NLuI8

Ry2XmKCtwoXg7ZDsqL23HIlYJzdPqvgVkbzA3Dc45yORb31xsc4vHEE07pbJ5TW4BLL9IcAAtUzI

QwoNCmVuZHN0cmVhbQ1lbmRvYmoNMTIwIDAgb2JqDTw8L1N0ZW1WIDE4Mi9Gb250TmFtZS9FS0JQ

R0wrQmF1aGF1czkzL0ZvbnRTdHJldGNoL05vcm1hbC9Gb250RmlsZTIgMTE5IDAgUi9Gb250V2Vp

Z2h0IDQwMC9GbGFncyAzMi9EZXNjZW50IC0yMzIvRm9udEJCb3hbLTExMyAtMjUwIDEyNzYgODk5

XS9Bc2NlbnQgODk4L0ZvbnRGYW1pbHkoQmF1aGF1cyA5MykvQ2FwSGVpZ2h0IDY3MS9YSGVpZ2h0

IC01MTUvVHlwZS9Gb250RGVzY3JpcHRvci9JdGFsaWNBbmdsZSAwPj4NZW5kb2JqDTEyMSAwIG9i

ag08PC9TdGVtViA5Mi9Gb250TmFtZS9UYWhvbWEvRm9udFN0cmV0Y2gvTm9ybWFsL0ZvbnRXZWln

aHQgNDAwL0ZsYWdzIDMyL0Rlc2NlbnQgLTIwNi9Gb250QkJveFstNjAwIC0yMDcgMTMzOCAxMDM0

XS9Bc2NlbnQgMTAwMC9Gb250RmFtaWx5KFRhaG9tYSkvQ2FwSGVpZ2h0IDczNC9YSGVpZ2h0IDU0

Ni9UeXBlL0ZvbnREZXNjcmlwdG9yL0l0YWxpY0FuZ2xlIDA+Pg1lbmRvYmoNMTIyIDAgb2JqDTw8

L1N0ZW1WIDE3MC9Gb250TmFtZS9UYWhvbWEtQm9sZC9Gb250U3RyZXRjaC9Ob3JtYWwvRm9udFdl

aWdodCA3MDAvRmxhZ3MgMzIvRGVzY2VudCAtMjA2L0ZvbnRCQm94Wy02OTggLTIwNyAxNjI1IDEw

NjVdL0FzY2VudCAxMDAwL0ZvbnRGYW1pbHkoVGFob21hKS9DYXBIZWlnaHQgNzM0L1hIZWlnaHQg

NTQ2L1R5cGUvRm9udERlc2NyaXB0b3IvSXRhbGljQW5nbGUgMD4+DWVuZG9iag0xMjMgMCBvYmoN

PDwvU3RlbVYgODIvRm9udE5hbWUvVGltZXNOZXdSb21hblBTTVQvRm9udFN0cmV0Y2gvTm9ybWFs

L0ZvbnRXZWlnaHQgNDAwL0ZsYWdzIDM0L0Rlc2NlbnQgLTIxNi9Gb250QkJveFstNTY4IC0zMDcg

MjAwMCAxMDA3XS9Bc2NlbnQgODkxL0ZvbnRGYW1pbHkoVGltZXMgTmV3IFJvbWFuKS9DYXBIZWln

aHQgNjU2L1hIZWlnaHQgLTU0Ni9UeXBlL0ZvbnREZXNjcmlwdG9yL0l0YWxpY0FuZ2xlIDA+Pg1l

bmRvYmoNMTI0IDAgb2JqDTw8L09DR3MgMTAwIDAgUi9UeXBlL09DTUQ+Pg1lbmRvYmoNMTI1IDAg

b2JqDTw8L09QTSAxL09QIGZhbHNlL29wIGZhbHNlL1R5cGUvRXh0R1N0YXRlL1NBIGZhbHNlL1NN

IDAuMDI+Pg1lbmRvYmoNMTI2IDAgb2JqDTw8L09QTSAwL0JNL05vcm1hbC9PUCBmYWxzZS9jYSAw

LjUvQUlTIGZhbHNlL29wIGZhbHNlL1R5cGUvRXh0R1N0YXRlL1NBIGZhbHNlL1NNIDEuMD4+DWVu

ZG9iag0xMjcgMCBvYmoNPDwvT1BNIDEvQk0vTm9ybWFsL09QIGZhbHNlL2NhIDEuMC9BSVMgZmFs

c2Uvb3AgZmFsc2UvVHlwZS9FeHRHU3RhdGUvU0EgZmFsc2UvU00gMC4wMjAwMDQzPj4NZW5kb2Jq

DTEgMCBvYmoNPDwvRmlyc3QgNzE1L0xlbmd0aCAxNDc3L0ZpbHRlci9GbGF0ZURlY29kZS9OIDkx

L1R5cGUvT2JqU3RtPj5zdHJlYW0NCnjatJjbbts4EIb3UQjsze7FVjwND0ARIHEbJHCbBHWKvTBy

4SZq1ljHNhRn0bx9f3J8kLeVLBkokJimOP/H4QxJkfZCiiCUlCIKQxrfhPFKKCUcRaG0cBE1I4Ky

An/ROKEIDyJM8dVaPPZ4JFEBhwjW0DlJQkuUJIXGIxdRh8Rb1A1KUDWkwWqhwQvRCA1EtLADL0Yv

dADCRqHxJ6MTJqGsEQZSFeEnpNp4YSDVAe5boOGfAcIE2Dl0YdJ4UHrYgUfo1IBHQYrkigPEgueC

FckVDxG60D4EgaHpAKPkUkD/Frxo8RwoiYDhq5EIGVw0SlqBoRpFTiAERssg0GS0k4LgikEkCV0b

BJUIriJeMDWWYAceIV74aggiSpmIUUBqHGAOPC+NcOB5dOLA84iPAy/ASQdeQDwdeBHOO/Ai4u3g

qoSzLqIEz8NlBR7SazWS4+G6TnWDMmjhEQIrURJKBMVjyBZxQugsITkePILIg+eQtBRCh0EE8DyC

DIT16BShtx79pZAGxD+AFzCIAF7AvAngRUyCFOKIoCB1NsIIKSWJYGMoJNE5TEkhH5gapDCoiBCr

GASGRhqTAimhFF+EgjREb98WQ8xlKT4VN5OqnK9uq7LEtN5/cFV+Ww3LV6GKT4tZ+XGyTFM+mdy+

LstitKpe7rPdp8ViVQxmk+fnbKOSzclJ6mOMiY9Kmve5CFzkjtKkz0W2Ty7mgriwXBguNBdrS9YF

pgRmBu4hMCUwJTAlMCUwJTAlMMUzxTPFM8UzxTPFM8Wz3Gf5XXEjsm0xKkbl/ar4MJk//vH+6q/P

o9/+zGO/enl6Hsu0ESTz/OhyPpvOy9E/E0TvfPr4UpXFu2qxHEyWm+r1yyqZFKPlZF6MXr4831fT

5WpTXZZV/cHt9Sn+B/g/zyUSMv23XLxsmpG9s8W34t30v+KinDxM54+/a2mKC1NcLaqnyay4qT23

xYWtVam4oOL9/GG+WJUwx8c5kryrnS0eXmGW+gDm8/yhrHaOw6HL5NFlcV5NnsqtB2UF273hYwhs

ySHLbqWdNAWWFWlD3UwnwO/L068rPJVvZB7g6Wz6OC8GmLCAXyMLr2n8f1fTFcbxcfFQFh+q2y+s

PCu/LqpyK72E0/NVrmKgtdpoNalqre1dZ+Nf1vNY8RTsvow0z1LNU17z1NVM0UzRTNFM0UwxTDFM

MUwxTDFMMUwxTDFMMWGvYJhlmGWYZZhlmLV7BTMtMy0zLcMsw4hhxDBiGDGMmEJMIaYQU4gpxBTH

FMcUxxTHFMcUxxTHFMcUxxS33ibkUcUdZtDpOHreOYZCYvfglGL7qO8KN4/YYnf75+lmLQw2S3a4

nRFpBwprxGY9/6DO40OHurvxYLNUh8LUVJv129iF7WNMfZx3Hch+Y+xhHF3NerPtNYUW78EkoR8k

tkUSk8T2kqiUdH6fQbO3fzZrVNLoTppNAFTKNb8p93yjNo35v6Y1e8rWzQ/mT1E/c9fPPGdcdsrF

VpNSzueHTl3EXuZa9jNX/cx1J/P1FBrjRaBt3itCr+mq8xL1/TR5pbpeU1yn9AXqp8np67f8dM6h

6aMZpwsR77O61/QyOUWqnyZvtrLXUjf2CA0doXFHaPwRmnCEJvbXWFnXHFpCOMakw37sbJ6y70M/

j0xdc3APsLafOXUy3w4gpdv7XkvS+iM0oa45PIqUae+6mpPsZ666mG+PGZST3OnQsNOYIzQ507af

hjprdsPPOe+1zY1xzk4/yeRfX3Cuxpka52mXXza+/fU9XJ+Lawe79W113exiS3PjXQyXqV95BxyO

9+4Ed03ej/cuEi1mP7mENFv/7B7TYt18I2oUrW9TjcwjL2nN/fHlr7nZtjeb9mbd3qzam9vnp4nt

zaE1kIev1c0xM63DGh++2zej+eeB5ub2bOn2bOn2bOm2Yd3MsHKfsBTXd+XdIj+DyTiqN9iAPOGT

NBYr9jF83p2cfBdgAMgZnSQNCmVuZHN0cmVhbQ1lbmRvYmoNMiAwIG9iag08PC9OdW1zWzAgMyAw

IFJdPj4NZW5kb2JqDTMgMCBvYmoNPDwvUy9EPj4NZW5kb2JqDTQgMCBvYmoNPDwvQ291bnQgMS9U

eXBlL1BhZ2VzL0tpZHNbMTAxIDAgUl0+Pg1lbmRvYmoNNSAwIG9iag08PC9TdWJ0eXBlL1hNTC9M

ZW5ndGggNDAyNy9UeXBlL01ldGFkYXRhPj5zdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0i77u/IiBp

ZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6

bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMC1jMzE2IDQ0LjI1MzkyMSwgU3Vu

IE9jdCAwMSAyMDA2IDE3OjE0OjM5Ij4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3

LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv

biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29t

L3BkZi8xLjMvIj4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BY3JvYmF0IERpc3RpbGxlciA4LjEu

MCAoV2luZG93cyk8L3BkZjpQcm9kdWNlcj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAg

IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBkZng9Imh0

dHA6Ly9ucy5hZG9iZS5jb20vcGRmeC8xLjMvIj4KICAgICAgICAgPHBkZng6Q29tcGFueT5Gb3Jk

IE1vdG9yIENvbXBhbnk8L3BkZng6Q29tcGFueT4KICAgICAgICAgPHBkZng6U291cmNlTW9kaWZp

ZWQ+RDoyMDA5MDQxNTIxMDkxNjwvcGRmeDpTb3VyY2VNb2RpZmllZD4KICAgICAgPC9yZGY6RGVz

Y3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAg

IHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4YXA6

Q3JlYXRvclRvb2w+QWNyb2JhdCBQREZNYWtlciA4LjEgZm9yIFdvcmQ8L3hhcDpDcmVhdG9yVG9v

bD4KICAgICAgICAgPHhhcDpNb2RpZnlEYXRlPjIwMDktMDQtMTVUMTc6MDk6NDAtMDQ6MDA8L3hh

cDpNb2RpZnlEYXRlPgogICAgICAgICA8eGFwOkNyZWF0ZURhdGU+MjAwOS0wNC0xNVQxNzowOToz

NC0wNDowMDwveGFwOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4YXA6TWV0YWRhdGFEYXRlPjIwMDkt

MDQtMTVUMTc6MDk6NDAtMDQ6MDA8L3hhcDpNZXRhZGF0YURhdGU+CiAgICAgIDwvcmRmOkRlc2Ny

aXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4

bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyI+CiAgICAgICAgIDx4

YXBNTTpEb2N1bWVudElEPnV1aWQ6OWQwZmY4MDgtMjE0Yy00NjZmLWJiZTQtYjk3YTJhOTg1ZTc4

PC94YXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eGFwTU06SW5zdGFuY2VJRD51dWlkOjk0YjJh

YWM1LWZjNjktNGQwNC1hZWM3LTcwNDE0YzdlZjViZjwveGFwTU06SW5zdGFuY2VJRD4KICAgICAg

ICAgPHhhcE1NOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8

cmRmOmxpPjU8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3hhcE1N

OnN1YmplY3Q+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9u

IHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2Vs

ZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9y

bWF0PgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAg

ICAgICAgIDxyZGY6bGk+YXNoZWE8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAg

ICAgICA8L2RjOmNyZWF0b3I+CiAgICAgICAgIDxkYzp0aXRsZT4KICAgICAgICAgICAgPHJkZjpB

bHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+QXR0bjogS2V2

aW4gU2hlYTwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpBbHQ+CiAgICAgICAgIDwvZGM6dGl0

bGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgog

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBh

Y2tldCBlbmQ9InciPz4NCmVuZHN0cmVhbQ1lbmRvYmoNNiAwIG9iag08PC9DcmVhdGlvbkRhdGUo

RDoyMDA5MDQxNTE3MDkzNC0wNCcwMCcpL0F1dGhvcihhc2hlYSkvQ3JlYXRvcihBY3JvYmF0IFBE

Rk1ha2VyIDguMSBmb3IgV29yZCkvUHJvZHVjZXIoQWNyb2JhdCBEaXN0aWxsZXIgOC4xLjAgXChX

aW5kb3dzXCkpL01vZERhdGUoRDoyMDA5MDQxNTE3MDk0MC0wNCcwMCcpL0NvbXBhbnkoRm9yZCBN

b3RvciBDb21wYW55KS9Tb3VyY2VNb2RpZmllZChEOjIwMDkwNDE1MjEwOTE2KS9UaXRsZShBdHRu

OiBLZXZpbiBTaGVhKT4+DWVuZG9iag14cmVmDQowIDk4DQowMDAwMDAwMDAwIDY1NTM1IGYNCjAw

MDAwMTU1MDUgMDAwMDAgbg0KMDAwMDAxNzA3OSAwMDAwMCBuDQowMDAwMDE3MTEzIDAwMDAwIG4N

CjAwMDAwMTcxMzcgMDAwMDAgbg0KMDAwMDAxNzE5MCAwMDAwMCBuDQowMDAwMDIxMjk0IDAwMDAw

IG4NCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1

NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAw

IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAw

MDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAw

MDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQow

MDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBm

DQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUz

NSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2

NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAw

MCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAw

MDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAw

MDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0K

MDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUg

Zg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1

MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAg

NjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAw

MDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAw

MDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAw

MDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYN

CjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1

IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1

NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAw

IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAw

MDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAw

MDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQow

MDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBm

DQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUz

NSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2

NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAw

MCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAw

MDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAw

MDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0K

dHJhaWxlcg0KPDwvU2l6ZSA5OD4+DQpzdGFydHhyZWYNCjExNg0KJSVFT0YNCg==
 
 
 

--==Multipart_Boundary_xfd704daf173bbd0a40f7df0b53837be4x--

Open in new window

0
 
LVL 6

Assisted Solution

by:basic612
basic612 earned 500 total points
ID: 24830140
Your life would be a whole load easier if you were using the PHPMailer class:

  http://phpmailer.worxware.com/index.php?pg=exampleamail

full details:

  http://phpmailer.worxware.com/index.php?pg=phpmailer
0
 

Author Comment

by:alicia1234
ID: 24830286
I know. ;-( But I'm not that experienced with PHP and I looked at PHPMailer and it looked too complicated for me to pick up right now.
0
 

Author Comment

by:alicia1234
ID: 24830293
But maybe you could get me started? For example, I see in the first link a "require_once" for class.phpmailer.php" - where/how do I get that ?
0
 
LVL 6

Expert Comment

by:basic612
ID: 24830326
you get the class by clicking the download link on the left of the example page; or simpler, go here:

http://sourceforge.net/projects/phpmailer/files/

then choose the version according to which PHP you are running

http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5%2F6/PHPMailer_v5.0.2.zip/download

is the latest version for PHP 5 / 6

you might also want to look at this:

http://phpmailer.worxware.com/index.php?pg=install

and

http://phpmailer.worxware.com/index.php?pg=tutorial

for a full tutorial.

HTH



0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 

Author Comment

by:alicia1234
ID: 24830329
I downloaded PHPMailer for PHP5/6 and extracted the files. I see that there are three .php files. Do I simply move those into my website and use them per the example?
0
 
LVL 6

Expert Comment

by:basic612
ID: 24830337
yep pretty much. It's a relatively straight forward setup. Just make sure you are including with the correct path to include the phpmailer class file.

have a go with the tutorial... it really is quite straight forward once you've done that...
0
 

Author Comment

by:alicia1234
ID: 24830867
Thanks. I can't work on this until later tonite or tomorrow. Will post back then. Hoping that, in the end, it would have been a lot quicker for me to use PHPMailer in the first place.

I haven't used classes before. Would you just explain to me what the - > syntax is? Thanks!
0
 
LVL 6

Expert Comment

by:basic612
ID: 24833348
the -> syntax shows that you are calling a function (method) or accessing a variable (property) in the class.

there's plenty of info on these basics in the PHP manual pages, such as here:

http://us.php.net/manual/en/language.oop5.basic.php
0
 

Accepted Solution

by:
alicia1234 earned 0 total points
ID: 24835786
I did get this to work using just php mail's function. Code is posted below. It works on localhost and also my hosting account, and both Eudora 7 and Outlook receive the mail properly.

The critical differences between it and what I originally posted are:

1. Fixed how $body was defined. The code I copied first defined $body as "Here is the file \n\n", then added the "This is a multipart message ... \n\n" stuff, then the content type and content encoding, then tacked on the original "Here is the file..." stuff. Now, I first set $body with the content type and encoding, then the "Here is the file". I'm not sure why it was done the way it was in the first place. Kind of convoluted.

2. Used the constant PHP_EOL for all end-of-lines instead of "\n"

3. Redid the string syntax so I only used single-quote strings (easier for me to see what's going on)

4. Removed an extra new line just before the MIME declaration - this was a critical step. With the extra newline, it worked on localhost, but not my remote host. With it gone, it worked on both.

<?php

$fileatt = 'attachments/Invoice-20090415.pdf'; // Path to the file

$fileatt_type = "application/octet-stream"; // File Type

$fileatt_name = 'Invoice-20090415.pdf'; // Filename that will be used for the file as the attachment
 

$to = "<removed>";

$subject = "Testing email attachment from remote host - final test";

//$headers = 'From: <removed>' . PHP_EOL;

$headers = 'Cc: <removed>' . PHP_EOL;
 

$file = fopen($fileatt,"rb");

$data = fread($file,filesize($fileatt));

fclose($file);
 

$semi_rand = md5(time());

$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
 

// on localhost, this works with our without an extra EOL before MIME;

// on remote host, it will NOT WORK with the extra EOL

$headers .=  'MIME-Version: 1.0' . PHP_EOL .

'Content-Type: multipart/mixed;' . PHP_EOL .

' boundary="' . $mime_boundary . '"';
 

$body = '--' . $mime_boundary . PHP_EOL . 

'Content-Type:text/html; charset="iso-8859-1"' . PHP_EOL .

'Content-Transfer-Encoding: 7bit' . PHP_EOL ;

$body .= PHP_EOL . 'Here is the file:' . PHP_EOL; //two EOL's between content transfer and actual message is critical!
 

$data = chunk_split(base64_encode($data));
 

$body .= '--' . $mime_boundary . PHP_EOL .

'Content-Type: ' . $fileatt_type . ';' . PHP_EOL .

' name=' . '"' . $fileatt_name . '"' . PHP_EOL .

'Content-Disposition: attachment;' . PHP_EOL .

' filename=' . '"' . $fileatt_name . '"' . PHP_EOL .

'Content-Transfer-Encoding: base64' . PHP_EOL .

PHP_EOL .  // this second EOL is critical

$data . PHP_EOL . PHP_EOL . //this works with either one or two EOL's, both remote & local

'--' . $mime_boundary. '--' . PHP_EOL;
 

$ok = @mail($to, $subject, $body, $headers);
 
 
 

if($ok) {

echo "<font face=verdana size=2>The file was successfully sent!</font>";

} else {

die("Sorry but the email could not be sent. Please go back and try again!");

}

?>

Open in new window

0
 

Author Comment

by:alicia1234
ID: 24835805
Please note that I did ask to have points awared to basic612 anyways for pointing me to PHPMailer and supporting help and documentation. I'll take a look at it when I have more time.
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Generating table dynamically is the most common issue faced by php developers.... So it seems there is a need of an article that explains the basic concept of generating tables dynamically. It just requires a basic knowledge of html and little maths…
I imagine that there are some, like me, who require a way of getting currency exchange rates for implementation in web project from time to time, so I thought I would share a solution that I have developed for this purpose. It turns out that Yaho…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now