У меня есть скрипт для отправки писем с помощью PHPmailer (класс отличается, потому что я использую CRUD, но функции те же)
Это скрипт:
if (array_key_exists('recipient', $_POST)) {
$attachment = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['attachment']['name']));
move_uploaded_file($_FILES['attachment']['tmp_name'], $attachment);
$recipient = $_POST['recipient'];
$subject = $_POST['subject'];
$content = $_POST['content'];
//$attachment = $_POST['attachment'];
$email->Sender = "noreply@fw.net";
$email->Recipient = "noreply@fw.net";
if (!empty($_POST['recipient'])) {
$email->Recipient = $recipient;
} else {
foreach ($bcc as $bcc) {
$email->addBcc($bcc);
}
}
//$email->addRecipient = $bcc;
$email->Subject = $subject;
$email->Content = $content;
$email->addAttachment($attachment, 'MyFile');
$email->Format = "html";
//$email->send();
if(!$email->send()) {
$msg = '<div style="Color:red">Sent:</div>'. $email->SendErrDescription;
} else {
$msg = '<div style="Color:green">not Sent</div>';
header("Refresh:5");
}
}
thisформа: email.php (работает на той же странице скрипт / форма)
<form id="mess" action="email.php" method="POST" enctype="multipart/form-data">
<?php if ($Page->CheckToken) { ?>
<input type="hidden" name="<?php echo TOKEN_NAME ?>" value="<?php echo $Page->Token ?>">
<?php } ?>
<div id="jsInfo" data-count="<?php echo $count; ?>"></div>
<div class="card card-primary card-outline">
.......
<div class="form-group">
<div class="btn btn-default btn-file">
<i class="fa fa-paperclip"></i> Allegato
<input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input type="file" name="attachment" id="attachment">
</div>
<p class="help-block">Max. 10MB</p>
</div>
........
<button type="submit" value="Upload" name="submit" class="btn btn-primary"><i class="fa fa-envelope-o"></i> Send </button>
Я изменил место назначения на php.ini. Я использую wamp в локальной сети для тестирования с:
sys_temp_dir = "/tmp"
to
sys_temp_dir = "c:/Users/lt/Documents/Temp"
Вопрос:
Почему файл не прикреплен к исходному файлу (pdf, jpg, bmp, txt ecc ..), а файл * .tmp прикреплен.?где я не прав?
допустим, я решил это.
don't works
$attachment = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['attachment']['name']));
move_uploaded_file($_FILES['attachment']['tmp_name'], $attachment);
works
$uploaddir = 'C:/wamp64/www/fw3/';
$attachment_tmp = $_FILES['attachment']['tmp_name'];
$attachment_name = $_FILES['attachment']['name'];
move_uploaded_file($attachment_tmp, $uploaddir . $attachment_name);
У меня опять две проблемы ... 1) Как отправить вложение всем получателям?2) При отправке файла 4Mb страница загружается много времени, как я могу изменить скрипт, чтобы отправка работала в фоновом режиме?