-1

私はphpmailerクラスを使用して電子メールを送信しており、メールにファイルを添付しています。電子メールは正常に送信されますが、SQL ファイルである添付ファイルが空である必要はありません。画像ファイルを試してみましたが、添付するすべてのファイルが空のようです。誰でもこの問題を解決するのを手伝ってもらえますか?

$mail = new PHPMailer();
    $body = "Reminder";
    $mail->IsSMTP();  
    $mail->Host       = "mail.yourdomain.com";  
    $mail->SMTPDebug = 1;  

    $mail->SMTPAuth = true;  
    $mail->SMTPSecure = "ssl";  
    $mail->Host = "smtp.gmail.com";  
    $mail->Port = 465;  
    $mail->Username = "abc@gmail.com";  
    $mail->Password = "abc";              
   $mail->SetFrom('abc@gmail.com',
  'blbla');
   $mail->AddReplyTo("name@yourdomain.com","First Last");
   $mail->Subject = "Your order has been successfully placed"
   $mail->MsgHTML($body);
   $mail->AddAddress("xyz@live.com","xyz");
   $mail->AddAttachment("D:\b2\shop3.sql","shop3.sql");

更新: 添付する前にファイルのサイズを表示しようとしましたが、実際にはファイルのサイズが表示されます。誰でも私を助けてもらえますか?

4

4 に答える 4

0

さらにテストするためのいくつかの提案:

1-実行中のスクリプトと同じディレクトリにある単純な*.txtファイルを添付してみてください。これにより、添付ファイル側がテストされ、スクリプトがファイルの添付を好まないのか、*。sqlファイルのみを添付するのかが証明される場合があります。

2-#1が正常に機能する場合は、*。txtファイルを*.sqlファイルが現在存在するのと同じフォルダーに移動してから、もう一度テストします。これにより、スクリプトが使用しているファイルパスを介してファイルにアクセスできるかどうかが証明されます。

3-スクリプトによって生成されたWebブラウザー出力、または電子メールメッセージの本文に、*。sqlファイルの内容をエコーし​​てみてください。これは、スクリプトが問題のファイルを読み取れるかどうかも証明する必要があります。

私はこれらの提案をベースから外れているかもしれませんが、これを試してトラブルシューティングを行うとしたら、そこから始めます。

于 2010-05-06T13:36:26.977 に答える
0

ファイルを添付する前に、ファイルの存在をテストしてみてください。\また、 PHP の文字列内で a がどのように動作するかは不明であるため、C 標準を使用してエスケープすることをお勧めします。

$attach_filename = "D:\\b2\\shop3.sql";
if (is_file($attach_filename)) {
    $mail->AddAttachment($attach_filename,"shop3.sql");
} else {
    print "error: attachment $attach_filename doesn't exist";
}
于 2010-05-04T13:03:01.863 に答える
-1

代わりにswiftmailer.orgを試すことをお勧めします

于 2010-05-04T13:03:43.427 に答える