2017-03-18 30 views
1

ここに私の電子メールはphpファイルを送信しますが、電子メールは送信されましたが添付ファイルは機能しません。ファイルはそのパスにあります。問題は、私はlinuxコマンドからファイル名を取得し、変数に格納する必要があります。その変数を呼び出すと、添付ファイルは機能しません。 PHPmailerファイル添付ファイルが動作しません

<?php 

require_once('phpmailer/class.phpmailer.php'); 
$mail = new PHPMailer(); 
$file_name1 = shell_exec('sed "1q;d" /tmp/file.txt'); 
$file = "/home/user/.$file_name1"; 
echo $file; 


//set Address data 
$mail->Subject = "Acknowledgement Files ".date("m-d-Y:h:i:s")." "; 
$mail->MsgHTML(" Acknowledgement Files are here attached"); 
$mail->AddAttachment($file) 


if($mail->Send()) { 
     echo "Message sent!"; 
} else { 
     echo "Mailer Error: " . $mail->ErrorInfo; 
} 

?> 

私は

$file = "/home/user/filetxt"

、この作品のように完全なパスを使用するつもりですが、私は、変数やエコーを呼び出したい場合は、ディスプレイに正しい名前です。

+0

realpath($ path_of_file)を試しましたか? –

+0

'$ file ="/home/user /.$ file_name1 ";'は間違っています$ file = "/ home/user/$ file_name1"; 'または' $ file = "/home/user/".$ file_name1; ' –

+0

ファイルのパスを確認してください。https://github.com/PHPMailer/PHPMailer –

答えて

1

このように、二重引用符の外にあなたの変数を入れてください:

$file = "/home/user/".$file_name1; 
+0

私はすでに試しましたが、うまくいかなかったのです。 – abaid778

0

だから私は、同様の問題と解決策を見つけました。ですから、ls /path/のようなlinuxコマンドを実行すると、出力はresult\nとなります。それは同様に新しい行の文字を追加します。だから私は、新しい行を削除する

$file_name1 = trim(shell_exec('sed "1q;d" /tmp/file.txt'));

にこのライン

$file_name1 = shell_exec('sed "1q;d" /tmp/file.txt');

を変更しました。そして今すぐ動作します

関連する問題