- /* Use 'rb' for NT systems -- read binary
- * Unix doesn't care -- everything's binary! :-)
- */
-
- $filename = $hashed_attachment_dir . '/' . $info['localfilename'];
- $file = fopen ($filename, 'rb');
- if (substr($filetype, 0, 5) == 'text/' ||
- substr($filetype, 0, 8) == 'message/' ) {
- $header .= "\r\n";
- fputs ($fp, $header);
- $length += strlen($header);
- while ($tmp = fgets($file, 4096)) {
- $tmp = str_replace("\r\n", "\n", $tmp);
- $tmp = str_replace("\r", "\n", $tmp);
- $tmp = str_replace("\n", "\r\n", $tmp);
- if (feof($fp) && substr($tmp, -2) != "\r\n") {
- $tmp .= "\r\n";
+
+ /* Use 'rb' for NT systems -- read binary
+ * Unix doesn't care -- everything's binary! :-)
+ */
+
+ $filename = $hashed_attachment_dir . '/'
+ . $info['localfilename'];
+ $file = fopen ($filename, 'rb');
+ if (substr($filetype, 0, 5) == 'text/' ||
+ substr($filetype, 0, 8) == 'message/' ) {
+ $header .= $rn;
+ if ($fp) {
+ fputs ($fp, $header);
+ }
+ $length += strlen($header);
+ while ($tmp = fgets($file, 4096)) {
+ $tmp = str_replace("\r\n", "\n", $tmp);
+ $tmp = str_replace("\r", "\n", $tmp);
+ if ($rn == "\r\n"){
+ $tmp = str_replace("\n", "\r\n", $tmp);
+ }
+ if ($fp) {
+ fputs($fp, $tmp);
+ }
+ $length += strlen($tmp);
+ }
+ if (substr($tmp, strlen($tmp) - strlen($rn), strlen($rn)) != $rn) {
+ if ($fp) {
+ fputs($fp, $rn);
+ }
+ }
+ } else {
+ $header .= "Content-Transfer-Encoding: base64"
+ . "$rn" . "$rn";
+ if ($fp) fputs ($fp, $header);
+ $length += strlen($header);
+ while ($tmp = fread($file, 570)) {
+ $encoded = chunk_split(base64_encode($tmp));
+ $length += strlen($encoded);
+ if ($fp) fputs ($fp, $encoded);