Я создаю службу рассылки. Мне нужно добавить динамически один или несколько файлов в электронное письмо, используя php, phpmailer и только один «слот» для добавления файлов в форму html. Я просто знаю, как отправить одно вложение, а не два или более, в том же письме.Phpmailer: несколько динамических приложений в одной форме
здесь у являются HTML-код:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<div class="main_container">
<form action="phpmailer/sendmail.php" method="post" enctype="multipart/form-data" id="prenota">
<div class="form_title">
<h2>Mailing List</h2>
</div>
<div class="form_title">
<p>Message:</p>
</div>
<label for="message">
<textarea name="message"></textarea>
</label>
<label for="file">
Select one or more file to send
<input name="file" type="file" id="file_ok">
</label>
<div class="submit-container">
<input class="submit-button" type="submit" name="submit" value="Invia"><br>
</div>
</form>
</div>
</body>
</html>
и PHP для PHPMailer (sendmail.php, она работает с сервисом хостинга Я являюсь usign):
<?php
require_once('libs/PHPMailer/PHPMailerAutoload.php');
$db= new PDO('mysql:host=00.000.000.000;dbname=dbname_1', 'dbname', 'dbpass');//connection setup
$m_list = $db->query("
SELECT id, nome, email
FROM mailing_list
")->fetchAll(PDO::FETCH_ASSOC);
$mail = new PHPMailer(true);
$mail->Port = 25;
$mail->CharSet = 'UTF-8';
//variables
$email_receiver = $m_list['email'];
$name_receiver = $m_list['nome'];
$nome_sender= "mr x";
$messagge= stripslashes($_POST['message']);
foreach ($m_list as $eachmail) {
$email_receiver = $eachmail['email'];
$name_receiver = $eachmail['nome'];
$mail->From = "[email protected]";
$mail->FromName = "service";
$mail->AddReplyTo($email_receiver, $name_receiver);
$mail->MsgHTML($body);
$mail->AddAddress($email_receiver, "dynamic name");
$mail->Subject = "Message from website";
$body = '<strong>email send to:</strong> ' . $name_receiver . '<br/>
<strong>email:</strong> ' . $email_receiver . '<br/>
<strong>message:</strong> ' . stripslashes($message) . '<br/><br/>';
$mail->MsgHTML($body);
$mail->Send(true);
$mail->ClearAllRecipients(true);
}
echo "mail sent";
?>
Я полагаю, я необходимо сохранить файлы ito массива, а затем для каждого файла создать относительное вложение. К сожалению, я не могу. Любая помощь?
Создайте свой код в сочетании с [примером списка рассылки] (https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps) и отправьте пример отправки (https://github.com/PHPMailer/PHPMailer/blob/master/examples/send_file_upload.phps) предоставляется с помощью PHPMailer. По существу вам просто нужно вызвать 'addAttachment' для каждого файла после обработки загрузок. – Synchro
Thaks, я сделал то, что предложил, отправил ответ тоже! –
phpmailer все равно, сколько/нескольких вложений вы делаете. вы просто вызываете '-> AddAttachment()', пока не закончите добавление. если вы не называете это вообще, то это тоже хорошо. –