Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 5 of 5
  1. #1
    Regular Coder
    Join Date
    Jun 2006
    Location
    UK
    Posts
    922
    Thanks
    302
    Thanked 3 Times in 3 Posts

    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
    Regular Coder Custard7A's Avatar
    Join Date
    Jul 2010
    Location
    Australia
    Posts
    286
    Thanks
    32
    Thanked 33 Times in 33 Posts
    If it works with a relative path but not an absolute path then my first thought is your script is fine, but the server(s) aren't allowing absolute paths.

    Run the special function phpinfo() (a blank page helps) and check the status of allow_url_fopen.

  • #3
    Regular Coder
    Join Date
    Jun 2006
    Location
    UK
    Posts
    922
    Thanks
    302
    Thanked 3 Times in 3 Posts
    What if the allow_url_fopen is false? Is there any alternate option to achieve this?

  • #4
    Senior Coder
    Join Date
    Feb 2011
    Location
    Your Monitor
    Posts
    4,332
    Thanks
    60
    Thanked 526 Times in 513 Posts
    Blog Entries
    4
    Not really no other than cURL which I don't think relies on that setting because it's an independant library.

    Also try using file_get_contents() instead of fopen - it makes it a lot easier.

    As for the email code, use PHPMailer instead. You won't need to worry about all the complex stuff you're doing.
    See my new CodingForums Blog: http://www.codingforums.com/blogs/tangoforce/

    Many useful explanations and tips including: Cannot modify headers - already sent, The IE if (isset($_POST['submit'])) bug explained, unexpected T_CONSTANT_ENCAPSED_STRING, debugging tips and much more!

  • #5
    Regular Coder
    Join Date
    Jun 2006
    Location
    UK
    Posts
    922
    Thanks
    302
    Thanked 3 Times in 3 Posts
    Thanks guys for your input. Appreciate it.


  •  

    Posting Permissions

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