-1

ユーザーからファイルを取得し、base64 でエンコードしてから、エンコードされたファイルの添付ファイルとして電子メールに転送するスクリプトを作成しようとしています。

これは今までのコードです:

クライアント側 :

<form action="send.php" method="post" enctype="multipart/form-data">
<input type="file" name="uploaded_file">
<input type="submit" value="Submit" name='submit'>
</form>

PHP スクリプト (send.php)

<?php
$uploaded_file = basename($_FILES['uploaded_file']['name']);
$file_size = filesize($uploaded_file);
$handle = fopen($uploaded_file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content1 = base64_encode($content);
$my_file = "'$encoded_file' . '_encoded' . '.html'";
$handle1 = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file);
fwrite($handle1, $content1);
$from="tes@gmail.com";
$to="myemail@gmail.com"
$subject="New file";
$message="you got a new file";
mail($from,$to,$subject,$message);
unlink($my_file);
?>

メールに $myfile を添付する方法がわかりません。

4

2 に答える 2

1

PHPMailerを使用するだけです

$mail = new PHPMailer(); // defaults to using php "mail()"

$body = file_get_contents('contents.html');
$body = preg_replace('/[\]/', '', $body);

$mail->SetFrom('tes@gmail.com', 'First Last');
$mail->AddReplyTo("tes@gmail.com", "First Last");
$mail->AddAddress("myemail@gmail.com", "John Doe");
$mail->Subject = "New File";
$mail->AltBody = "you got a new file";
$mail->MsgHTML($body);


$my_file = file_put_contents("tmp.html", base64_encode($content));
$mail->AddAttachment($my_file); // attachment


if (! $mail->Send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message sent!";
}
于 2012-12-17T11:47:32.120 に答える
0

PEAR :: SMTPやSwiftなどの外部メールライブラリを使用していない場合、添付ファイルの作成は簡単なことではありません。

ヘッダーをメッセージコンテンツから分離する方法とメッセージコンテンツを添付ファイルから分離する方法について、彼らが指示するメール標準を確認する必要があります。

セパレータは\r\nであり、各セクションの前にセパレータを付ける必要があります。

このリンクをチェックしてください:http ://webcheatsheet.com/php/send_email_text_html_attachment.php

そして私のコード例:

$uid = md5(uniqid(time()));
$header = implode("\r\n",
    array(
        'MIME-Version: 1.0',
        'From: Address <address@example.com>',
        'Reply-To: Address <address@example.com>',
        'Cc: Address <address@example.com>',
        'Content-Type: multipart/mixed;',
        '    boundary="'.$uid.'"',
        '',
        '--'.$uid,
        'Content-Type: text/plain;',
        '    charset="us-ascii"',
        'Content-Transfer-Encoding: 7bit',
        '',
        mb_convert_encoding(
            implode("\r\n",
                array_map('wordwrap',
                    array(
                        'Hello,',
                        '',
                        'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla laoreet varius augue non pretium. Nullam dignissim iaculis velit, ut cursus neque mollis et. Fusce faucibus dictum nunc, sit amet cursus tellus aliquam ut. Praesent id libero orci, ut vehicula orci. Proin nulla sem, dapibus in lacinia vel, pharetra eget eros. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras rhoncus, enim sed mollis suscipit, sapien mauris suscipit mauris, nec placerat nisi sapien ac lectus. Sed vehicula faucibus iaculis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Integer placerat commodo nibh. Morbi sit amet augue vitae urna mattis pulvinar ac eget tellus. Donec mattis cursus posuere. Donec dolor velit, aliquam eu pretium vel, accumsan eu est. Proin at ante nisi, ut malesuada diam.',
                        '',
                        'Nulla ac urna lacus, in luctus ipsum. Nunc luctus risus non dui tincidunt in ultricies tellus rhoncus. Aliquam pellentesque vehicula adipiscing. Phasellus porttitor sodales quam et cursus. Pellentesque iaculis consectetur lorem, et consectetur sem tristique sed. Duis vehicula eleifend nisl, a semper augue lobortis cursus. Fusce ut ligula diam. Quisque fringilla sodales massa vitae rhoncus. Pellentesque a libero sed enim lacinia commodo quis et dolor. Praesent facilisis, orci nec lacinia ultrices, enim nunc imperdiet augue, at aliquet dolor augue nec nulla.',
                        '',
                        'Ut venenatis commodo pulvinar. Vestibulum quam odio, malesuada posuere porttitor facilisis, molestie vel risus. Mauris auctor fringilla ornare. Morbi eu libero orci, nec semper lorem. Quisque blandit, ante nec pharetra bibendum, felis felis tincidunt felis, sed mattis sapien lorem et risus. In sed interdum quam. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas vitae metus id purus ultrices fermentum. In dui eros, feugiat sit amet feugiat vel, accumsan vitae ligula. Nam at consectetur elit. Maecenas eget metus id nibh luctus mattis. Quisque mollis, sapien semper vulputate venenatis, purus arcu ornare orci, sit amet pellentesque enim ipsum non urna. Quisque at augue nec quam vehicula suscipit eu a dui. Morbi at molestie nunc. Mauris ultricies rutrum euismod. Sed non sem nisi. '
                    )
                )
            ),
            'iso-8859-1'
        ),
        '',
        '--'.$uid,
        'Content-Type: application/pdf;',
        '    name="file.pdf"',
        'Content-Transfer-Encoding: base64',
        'Content-Disposition: attachment;',
        '    filename="file.pdf"',
        '',
        chunk_split(base64_encode(file_get_contents('file.pdf'))),
        '--'.$uid.'--'
    )
);
mail($contacts, 'Subject', '', $header);
于 2012-12-17T11:38:31.283 に答える