www.webdeveloper.com
Results 1 to 2 of 2

Thread: Sending Email with attachment remotely hosted

Hybrid View

  1. #1
    Join Date
    Sep 2006
    Posts
    643

    Question Sending Email with attachment remotely hosted

    Hello,

    I am trying to send an email using PHP with an attachment thats remotely hosted. I am trying the following script but it does not work with remote attachment but works with attachment with relative path i.e. file existing in the same directory. Can someone please tell me whats wrong in this script?


    Code:
    <?php
    $fileatt = "http://www.freewebs.com/greenalternatives/chickureport_dahanu.PDF"; // Path to the file 
    $fileatt_type = "application/pdf"; // File Type 
    $fileatt_name = "chickureport_dahanu.PDF"; // Filename that will be used for the file as the attachment
    
    $email_from = "me@mydomain.net"; // Who the email is from 
    $email_subject = "Your attached file"; // The Subject of the email 
    $email_message = "Thanks for visiting mysite.com! Here is your free file.
    ";
    $email_message .= "Thanks for visiting.
    "; // Message that the email has in it
    
    $email_to = 'you@yourdomain.com'; // Who the email is to
    
    $headers = "From: ".$email_from;
    
    $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}\"";
    
    $email_message .= "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" . 
    $email_message .= "\n\n";
    
    $data = chunk_split(base64_encode($data));
    
    $email_message .= "--{$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($email_to, $email_subject, $email_message, $headers);
    
    if($ok) { 
    echo "You file has been sent
    to the email address you specified.
    
    Make sure to check your junk mail!
    
    Click here to return to mysite.com.";
    
    } else { 
    die("Sorry but the email could not be sent. Please go back and try again!"); 
    }

  2. #2
    Join Date
    Dec 2012
    Location
    Lahore, Pakistan
    Posts
    10

    Enable error reporting then re run the script

    enable errors on top of the page

    Code:
    ini_set("display_errors",1);
    error_reporting(E_ALL);
    then rerun the code to check for errors

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles