添付ファイルを取ることができる非常にシンプルなウェブサイトフォームがあります。それはGmailのsmtpを使用してGmailアドレスに送信します。ファイル名や拡張子なしでファイルが "noname"として到着する以外はすべてがうまくいっています。添付ファイルをダウンロードして正しいファイル名で名前を変更すると、ファイルは正常に開きます。Mail_Mimeを使ってGmailに添付ファイルを送信し、「noname」添付ファイルを受け取る
ファイルタイプやファイル名などのaddAttachment()に引数を追加しようとしましたが、電子メールには表示されません。私はGmailで「ショーオリジナル」をクリックすると、これは私が取付部(彼らは関係なく、私が使用しているものの引数、全く変化しません)で見るすべてされています。ここでは
Content-Transfer-Encoding: base64
Content-Type: application/octet-stream
Content-Disposition: attachment
はの関連する部分であります私のコード:
require_once 'Mail.php';
require_once 'mime.php';
$ToEmail = '***@***.com';
$EmailSubject = '*** contact form';
$Filename = basename($_FILES['uploaded_file']['name']);
$host = "ssl://smtp.gmail.com";
$port = "465";
$username = "***@***.com";
$password = "***";
$MESSAGE_BODY = "Blah blah blah";
$Uploads_folder = "../uploads/";
$Filepath = $Uploads_folder.$Filename;
$tmp_path = $_FILES["uploaded_file"]["tmp_name"];
if(is_uploaded_file($tmp_path)) {
if(!copy($tmp_path, $Filepath)) {
echo 'Sorry, there was an error in uploading the file. Please go back and try again.';
exit();
}
}
$headers = array ('From' => $username,
'To' => $ToEmail,
'Subject' => $EmailSubject);
$mime = new Mail_mime();
$mime->setHTMLBody($MESSAGE_BODY);
$mime->addAttachment($Filepath);
$body = $mime->get();
$headers = $mime->headers($headers);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($ToEmail, $headers, $body);
何か助けていただければ幸いです!