/
  • ضمیمه کردن فایل به فرم

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی ضمیمه کردن فایل به فرم
    نویسنده پیام
    azowghi آفلاین
    عضو جدید
    **

    ارسال‌ها: 16
    تاریخ عضویت: ۱۳۸۸ آبان ۱۰
    اعتبار: 0
    تشکرها : 3
    ( 14 تشکر در 9 ارسال )
    ارسال: #1
    ضمیمه کردن فایل به فرم
    سلام

    بنده میخواستم بدونم که آیا با smtp چطور میشه فایل کاربر رو ضمیمه کرد و به ایمیل فرستاد. با تابع mail رو بلدم اما نیاز به ارسال از طریق smtp رو دارم.

    ممنون
    __________________________________________________________________________
    طراحی برنامه های تحت وب
    phpform.ir
    ۱۳۸۸ اسفند ۲۲ ۰۳:۱۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    hidensoft آفلاین
    عضو ارشد
    *****

    ارسال‌ها: 1,385
    تاریخ عضویت: ۱۳۸۸ شهريور ۳
    اعتبار: 46
    تشکرها : 729
    ( 1395 تشکر در 782 ارسال )
    ارسال: #2
    RE: ضمیمه کردن فایل به فرم
    http://phpmailer.worxware.com/
    http://swiftmailer.org/

    کد PHP:
    /* Example Code */
    $mail_boundary md5(uniqid(time()));
    $mail_headers "MIME-Version: 1.0\r\n";
    $mail_headers .= "Content-type: multipart/mixed;boundary=\"$mail_boundary \"";
    $mail_headers .= "\r\n\r\n";
    $mail_headers .= "This is a multi-part message in MIME format.";

    $mail_headers .= "\r\n\r\n";
    $userfile "./myfile.doc";
    $fp fopen($userfile"r");
    $file fread($fpfilesize($userfile));

    $file chunk_split(base64_encode($file));

    $mail_body "--$mail_boundary\n";
    $mail_body .= "Content-type: text/plain; charset=euc-kr\r\n";
    $mail_body .= "Content-transfer-encoding: 8bit\r\n\r\n";
    $mail_body .= " Here goes the project file.\r\n";
    $mail_body .= "--$mail_boundary\r\n";
    $filename basename($userfile);

    $mail_body .= "Content-type: application/msword; name=$filename\r\n";
    $mail_body .= "Content-transfer-encoding:base64\r\n\r\n";
    $mail_body .= $file"\r\n\r\n";

    $mail_body .= " --$mail_boundary--";

    mail($mail_to$mail_subject$mail_body$mail_headers); 


    کد PHP:
    <?php
    //define the receiver of the email
    $to 'youraddress@example.com';
    //define the subject of the email
    $subject 'Test email with attachment';
    //create a boundary string. It must be unique
    //so we use the MD5 algorithm to generate a random hash
    $random_hash md5(date('r'time()));
    //define the headers we want passed. Note that they are separated with \r\n
    $headers "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
    //add boundary string and mime type specification
    $headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
    //read the atachment file contents into a string,
    //encode it with MIME base64,
    //and split it into smaller chunks
    $attachment chunk_split(base64_encode(file_get_contents('attachment.zip')));
    //define the body of the message.
    ob_start(); //Turn on output buffering
    ?>
    --PHP-mixed-<?php echo $random_hash?> 
    Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash?>"

    --PHP-alt-<?php echo $random_hash?> 
    Content-Type: text/plain; charset="iso-8859-1"
    Content-Transfer-Encoding: 7bit

    Hello World!!!
    This is simple text email message.

    --PHP-alt-<?php echo $random_hash?> 
    Content-Type: text/html; charset="iso-8859-1"
    Content-Transfer-Encoding: 7bit

    <h2>Hello World!</h2>
    <p>This is something with <b>HTML</b> formatting.</p>

    --PHP-alt-<?php echo $random_hash?>--

    --PHP-mixed-<?php echo $random_hash?> 
    Content-Type: application/zip; name="attachment.zip" 
    Content-Transfer-Encoding: base64 
    Content-Disposition: attachment 

    <?php echo $attachment?>
    --PHP-mixed-<?php echo $random_hash?>--

    <?php
    //copy current buffer contents into $message variable and delete current output buffer
    $message ob_get_clean();
    //send the email
    $mail_sent = @mail$to$subject$message$headers );
    //if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
    echo $mail_sent "Mail sent" "Mail failed";
    ?>
    ۱۳۸۸ اسفند ۲۲ ۰۴:۳۸ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : azowghi php
    nasserghiasi آفلاین
    ناصر GH
    ***

    ارسال‌ها: 242
    تاریخ عضویت: ۱۳۸۸ آذر ۷
    اعتبار: 2
    تشکرها : 127
    ( 41 تشکر در 22 ارسال )
    ارسال: #3
    RE: ضمیمه کردن فایل به فرم
    هنگام ارسال ، فایل باید در جایی ذخیره شود (برای مثال در tmp خود php ) و شما از طریق

    کد PHP:
    $_FILES['attach']['tmp'
    بتونید مسیر فایل را دریافت کنید و از طریق تابع file_get_contents محتوای فایل را در یک متغیر بریزید و ایمیل را ارسال نمایید
    ۱۳۸۸ اسفند ۲۲ ۰۵:۰۱ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : azowghi
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS