Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
591 views
in Technique[技术] by (71.8m points)

send email with attachment using php

I used this code to send email with attachment using php, but there is something error in the attachment since I receive an email and the attachment appears in the content. before I use the same code and it worked successfully. why???

<?php
// sending email with attachments

    function sendEmail($to,$from,$file,$ext){

      $to = "admin@fuwant.com";
     $from = "noor@fuwant.com";
      $subject = "Translation Request";

  $random_hash = md5(date('r', time()));

  $headers = "From: sahar@fuwant.com
Reply-To: admin@fuwant.com";

  $headers .= "
Content-Type: multipart/mixed; boundary="PHP-mixed-".$random_hash.""";

  $attachment = chunk_split(base64_encode(file_get_contents("Test.doc")));

  $output = "
        --PHP-mixed-$random_hash;
        Content-Type: multipart/alternative; boundary='PHP-alt-$random_hash'
        --PHP-alt-$random_hash
        Content-Type: text/plain; charset='iso-8859-1'
        Content-Transfer-Encoding: 7bit

        Hello World!
        This is the simple text version of the email message.

        --PHP-alt-$random_hash
        Content-Type: text/html; charset='iso-8859-1'
        Content-Transfer-Encoding: 7bit

        <h2>Hello World!</h2>
        <p>This is the <b>HTML</b> version of the email message.</p>

        --PHP-alt-$random_hash--

        --PHP-mixed-$random_hash
        Content-Type: application/doc; name=Test.doc
        Content-Transfer-Encoding: base64
        Content-Disposition: attachment

        $attachment
        --PHP-mixed-$random_hash--";
      $send =  @mail($to, $subject, $output, $headers);
  return $send;
  }
?>

please help.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

for what reason no use phpmailer? example for an attachment:

function mandaMail ($nombredest, $maildest, $asunto, $cuerpo) {
require_once("mailer/class.phpmailer.php");
$mail = new PHPMailer(true);
$mail->IsSMTP();

try {
    $mail->Host = "xxxx"; $mail->Port = 25; // smtp server
    $mail->SMTPAuth = true;
    $mail->Username = "xxxx"; // smtp username
    $mail->Password = "xxxx"; // smtp pass
    $mail->AddReplyTo("xxxx", "xxxx"); // email & name
    $mail->SetFrom("xxxx", "xxxx"); // similar to up value

    $mail->AddAddress($maildest, $nombredest);
    $mail->Subject = $asunto;
    $mail->MsgHTML(file_get_contents($cuerpo));

    $mail->AddAttachment("xxxx", "xxxx"); // attachments directory, attachment name (ie: dir/blah.jpg, blah.jpg)
    $mail->Send();

} catch (phpmailerException $e) { echo $e->errorMessage();
} catch (Exception $e) { echo $e->getMessage(); }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...