0

ファイルをメールに添付する際に問題があります。以下のコードを使用します (結果として得られるのは、添付ファイルのない電子メールだけです) 履歴書であるファイルを添付したいと考えています。

私を助けてくれませんか?

<?php
require("class.phpmailer.php");

$mail = new PHPMailer(true); //New instance, with exceptions enabled

$mail->CharSet = "UTF-8";
$bodys="Podanie od: ".$_POST['name']."<br/>"."Adres e-mail: ".$_POST['email']."<br/>"."Treść listu motywacyjnego: ".$_POST['message'];
$mail->Body =$bodys; 

$mail->IsSMTP(); // tell the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port = 25; // set the SMTP server port
$mail->Host = "mail.example.info"; // SMTP server
$mail->Username = "foobar"; // SMTP server username
$mail->Password = "hunter2"; // SMTP server password

$mail->IsSendmail(); // tell the class to use Sendmail

$mail->AddReplyTo($_POST['email'],$_POST['name']);

$mail->From = $_POST['email']; //uzupełnij sobie
$mail->FromName = $_POST['name']; //uzupełnij sobie

$to = 'foo@gmail.com'; //na jaki mail wysłać np ala@wp.pl

$mail->AddAddress($to);

$mail->Subject = "Nowe podanie o pracę";

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap = 80; // set word wrap

$mail->MsgHTML($bodys);


$plik_tmp = $_FILES['file']['tmp_name'];
$plik_rozmiar = $_FILES['file']['size'];
$plik_nazwa = $_FILES['file']['name'];

if(is_uploaded_file($plik_tmp)) {   
    $nazwa_g=$plik_nazwa;

    move_uploaded_file($plik_tmp, 'tmp_zal/'.$nazwa_g); 
    $mail->AddAttachment('tmp_zal/'.$nazwa_g);
} 

$mail->IsHTML(true); // send as HTML

if(!$mail->Send()) {
    echo "Błąd";
    echo "Kod błędu: " . $mail->ErrorInfo;
} else {
    echo '<h3>Wiadomość została wysłana</h3>';
}
?>

フォームコードは次のとおりです。

<form method="post" name="formularzaplikacyjny" enctype="multipart/form-data" action="mail-attachment3.php" id="formmail"> 

        <div id="imiediv"><label for="name">Imię i nazwisko: <em>*</em> </label><br>
                        <input type="text" name="name" id="name" class="required" title="Wpisz swoje imię i nazwisko" placeholder="Jan Kowalski"></div><br>

        <div id="emaildiv"><label for="email">Email: <em>*</em> </label><br>
                        <input type="text" name="email" class="required" id="email"  title="Wpisz swój adres email" placeholder="twoj_adres_email@email.com"></div><br>

        <div id="listdiv"><label for="message">List motywacyjny: <em>*</em></label><br>
                        <textarea name="message" rows="5" cols="48" class="required" id="message" title="Wpisz treść listu motywacyjnego"  placeholder="Tutaj zpowinna znaleźć się treść Twojego listu motywacyjnego" ></textarea></div>

        <div id="cvdiv"><label for="uploaded_file">Wybierz plik CV: <em>*</em></label><br>
                        <input type="file" name="file" title="<h3>Wybierz plik CV do przesłania</h3>" class="required" id="file"></div><br>

                        <input type="submit" value="Prześlij" name="submit" id="submitbutton">
                        </form>
4

1 に答える 1

0

問題は次のようです...

Input name="file" を name="file_upload" などに変更します。例として...(ファイルはお勧めしません) 次に、PHPMailer に従って、メソッド AddAttachment に次のように 2 つのパラメーターを渡す必要があります。

$mail->AddAttachment($tmpName, $file_name);

しかし、あなたは 1 つだけを通過するように見えます。

$mail->AddAttachment('tmp_zal/'.$nazwa_g);

それはあなたを困らせるかもしれないと思いますか?

詳細な例を見るには、ここをクリックしてください [ここをクリック]: http://www.askapache.com/php/phpfreaks-eric-rosebrocks-phpmailer-tutorial.html#File_Attachments_PHP_Mail_PHPMailer

于 2013-09-16T13:26:13.550 に答える