Отправка простого прикрепленного файла через функцию PHP mail () - PullRequest
1 голос
/ 11 июля 2010

Я собираюсь дать еще одну попытку, потому что мой последний вопрос мог сбить с толку. У меня есть простая веб-форма, состоящая из следующих некоторых входов (на данный момент, представьте, что у меня есть два входа, имя и файл). Я хочу, чтобы пользователь загрузил документ (если это возможно, ограничивается .doc, .docx, .pdf, если это невозможно, давайте просто ограничимся .doc), и я хочу ограничить размер до 2 МБ.

Позвольте мне перефразировать это. Присоединяемый файл - НЕ на веб-сервере. Он будет динамически загружен во временную папку, отправлен через почтовый скрипт, а затем удален.

Если это возможно, пожалуйста, мне нужна вся помощь, которую я могу получить.

Я пробовал Swiftmailer, PHPMailer, PEAR, я не могу заставить их работать. Все, что мне нужно, это простой скрипт для отправки прикрепленного файла, не более того. Проверка не требуется, ничего.

Любая помощь будет принята с благодарностью.

Большое спасибо, Amit

1 Ответ

4 голосов
/ 11 июля 2010

Можно сделать со всеми 3 библиотеками, которые вы перечислили (PHPMAiler, PEAR и Swiftmailer).

Для PHPMailer вы можете увидеть учебник здесь :

require_once '../class.phpmailer.php';

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch

try {
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->AddAddress('whoto@otherdomain.com', 'John Doe');
  $mail->SetFrom('name@yourdomain.com', 'First Last');
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  $mail->MsgHTML(file_get_contents('contents.html'));
  $mail->AddAttachment('images/phpmailer.gif');      // attachment
  $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
  $mail->Send();
  echo "Message Sent OK<P></P>\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}

AddAttachment примет файл с вашего сервера.

Как загрузить файл из формы HTML можно найти здесь .После отправки электронной почты вы можете удалить ( unlink ) файл с сервера.

Руководство по PHP поможет вам улучшить загрузку файлов.

Все, что вы хотите сделать, легко достичь, но объяснить это дольше, чем сделать :) Но со всеми ссылками, которые я вам дал, у вас есть все, что вам нужно.Если у вас есть конкретные вопросы, дайте мне знать.

...