Исчерпывающая инструкция по php mailer

О PHP Newsletter

Простой в использовании, интуитивно понятный интерфейс администрирования позволяет управлять продуктом из любого места с доступом в Интернет.
Визуальный редактор позволяет создавать сотни или даже тысячи списков рассылки.
PHP Newsletter позволяет вам импортировать подписчиков из CSV и Microsoft Excel файла или добавлять подписчиков вручную, а также имеет гибкий инструмент экспорта.
С PHP Newsletter вы можете использовать несколько способов отправки сообщений электронной почты: mail, sendmail и smtp.
Вы можете указать несколько SMTP-серверов. PHP Newsletter предоставляет статистику по рассылаемым вами информационным бюллетеням с информацией о количестве кликов, открытий и отписок.

Legacy versions

PHPMailer 5.2 (which is compatible with PHP 5.0 — 7.0) is no longer supported, even for security updates. You will find the latest version of 5.2 in the 5.2-stable branch. If you’re using PHP 5.5 or later (which you should be), switch to the 6.x releases.

Upgrading from 5.2

The biggest changes are that source files are now in the folder, and PHPMailer now declares the namespace . This has several important effects – read the upgrade guide for more details.

Minimal installation

While installing the entire package manually or with Composer is simple, convenient, and reliable, you may want to include only vital files in your project. At the very least you will need src/PHPMailer.php. If you’re using SMTP, you’ll need src/SMTP.php, and if you’re using POP-before SMTP (very unlikely!), you’ll need src/POP3.php. You can skip the language folder if you’re not showing errors to users and can make do with English-only errors. If you’re using XOAUTH2 you will need src/OAuth.php as well as the Composer dependencies for the services you wish to authenticate with. Really, it’s much easier to use Composer!

Как отправлять массовые письма в Outlook с помощью утилиты «Слияние почты с вложениями»

Расширенная версия утилиты Слияние почты с вложениями выполняет процессы слияния по тому же алгоритму, который мы описали выше. Она предлагает быстрый и простой способ автоматической персонализации массовых рассылок:

  • Вы можете создать шаблон письма в Outlook из обычного письма или использовать ранее сохраненный документ в формате OFT или MSG. Используйте макросы в теле письма, так же, как вы используете их в других полях сообщения. Добавьте соответствующие столбцы в таблицу — источник данных.
  • Источником данных для полей слияния является стандартный файл электронной таблицы CSV. Это распространенный формат, который легко создать в Microsoft Excel или другой программе, работающей с электронными таблицами.
  • В настройках утилиты выберите поля для слияния, включая адреса получателей, тему, CC, BCC.
  • На вкладке Вложения вы можете выбрать способ добавления файлов к рассылке. Можно указать путь к полю слияния в таблице данных или в настройках утилиты. Подробнее можно почитать
  • После настройки утилиты вы можете массово отправлять электронные письма сразу после слияния. Или сохранить исходящие сообщения в отдельной папке Outlook и проверить их, чтобы убедиться, что все в порядке. Настройки на вкладке Расширенные предоставляют много вариантов отправки.

Узнайте больше о том, как выполнять слияние почты с вложениями в подробном описании утилиты.

Обработка формы

После отправки формы управление передаётся PHP-скрипту, который должен получить переданные данные, выполнить с ними какие-либо действия (например, сохранить в базе данных) и показать результат.
Результатом может быть какое-нибудь сообщение об успешном завершении операции, например, «ваши данные успешно отправлены».

Поэтому требуется в первую очередь научиться получать данные из формы в сценарии .
В PHP это делается легко — все данные из формы находятся в глобальном ассоциативном массиве .
Этот массив всегда будет неявно присутствовать в сценарии, если он был загружен по методу .
Каждое поле из формы будет находиться в массиве, где ключом будет значение атрибута , а значением содержимое поля.
Например, чтобы вывести из формы всю информацию на экран, можно написать такой сценарий:

Функция служит для определения, существует ли переданная ей переменная. Так мы проверяем, что сценарий загружен методом , то есть была отправлена форма.

Как правило, после обработки формы в PHP, сценарий должен переадресовать пользователя на другую страницу. Это связано с тем, что если форма была отправлена через метод , то после обновления страницы данные будут отправлены ещё раз, а это, в большинстве случаев, нежелательное поведение.

Готовая функция отправки почты с вложением

Если терпеливый читатель дочитал до этого места, то вот универсальная функция отправки почты с вложением:

function KMail($to, $from, $subj, $text, $files = null, $isHTML = false){
 $boundary = "------------".strtoupper(md5(uniqid(rand())));
 $headers  = "From: ".$from."\r\n
              X-Mailer: koz1024.net\r\n
              MIME-Version: 1.0\r\n
              Content-Type: multipart/alternative;boundary=\"$boundary\"\r\n\r\n
             ";
 if (!$isHTML){
  $type = 'text/plain';
 }else{
  $type = 'text/html';
 }
   $body =  $boundary."\r\n\r\n
            Content-Type:".$type."; charset=utf-8\r\n
            Content-Transfer-Encoding: 8bit\r\n\r\n
            ".$text."\r\n\r\n";
 if ((is_array($files))&&(!empty($files))){
    foreach($files as $filename => $filecontent){
       $body .= $boundary."\r\n
                Content-Type: application/octet-stream;name=\"".$filename."\"\r\n
                Content-Transfer-Encoding:base64\r\n
                Content-Disposition:attachment;filename=\"".$filename."\"\r\n\r\n
                ".chunk_split(base64_encode($filecontent));
    }
 }
 return mail($to, $subj, $body, $headers);
}

Использование:

  $files = array('archive.zip' => file_get_contents('archive.zip'), 'myphoto.png' => file_get_contents('myfoto.png'));
  if (KMail('[email protected]', '[email protected]', 'проба пера', 'Привет, высылаю файлы...', $files, false)){
   echo 'Mail Отправлен';
  }else{
   echo 'Произошла ошибка';
  }
//или так
  $html = "(HTML код письма)";
  if (KMail('[email protected]', '[email protected]', 'проба пера', $html, null, true)){
   echo 'Mail Отправлен';
  }else{
   echo 'Произошла ошибка';
  }

С полученными знаниями, Вы без труда разберетесь в работе этой функции. Надеюсь, она Вам пригодится!

Как прикрепить несколько писем в Яндекс Почте к письму

Прикрепить в Яндекс Почте к письму несколько писем можно только на компьютере, либо в полной версии почтового клиента на телефоне через браузер.

Важно
Письма прикрепляются в формате EML.

Чтобы прикрепить несколько писем, выделите нужные в списке всех писем в почтовом аккаунте. И нажмите сверху “Переслать”.

Письма будут прикреплены в нижней части письма. У получателя они будут в виде файлов в формате EML.

Если необходимо удалить одно или несколько из прикрепленных писем — наведите на такие файлы и нажмите на крестик в правом верхнем углу.

Обратите внимание
Если несколько писем имеют одинаковые названия, определить содержащуюся в них информацию невозможно, так как нет возможности открыть письмо для предварительного просмотра.

Далее просто отправьте выбранные письма, при необходимости добавив в письмо дополнительный текст.

Отметим, что получатель сможет просмотреть приложенные письма только на компьютере или в специальной программе на телефоне (если она у него установлена). Официальный клиент Яндекс Почты на телефоне, как и мобильная версия сайта Яндекс Почта, не поддерживают открытие файлов в формате EML.

Примеры исходных кодов

1 Отправка писем с вложениями

<?php
function XMail( $from, $to, $subj, $text, $filename) { 
    $f         = fopen($filename,"rb"); 
    $un        = strtoupper(uniqid(time())); 
    $head      = "From: $from\n"; 
    $head     .= "To: $to\n"; 
    $head     .= "Subject: $subj\n"; 
    $head     .= "X-Mailer: PHPMail Tool\n"; 
    $head     .= "Reply-To: $from\n"; 
    $head     .= "Mime-Version: 1.0\n"; 
    $head     .= "Content-Type:multipart/mixed;"; 
    $head     .= "boundary=\"----------".$un."\"\n\n"; 
    $zag       = "------------".$un."\nContent-Type:text/html;\n"; 
    $zag      .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n"; 
    $zag      .= "------------".$un."\n"; 
    $zag      .= "Content-Type: application/octet-stream;"; 
    $zag      .= "name=\"".basename($filename)."\"\n"; 
    $zag      .= "Content-Transfer-Encoding:base64\n"; 
    $zag      .= "Content-Disposition:attachment;"; 
    $zag      .= "filename=\"".basename($filename)."\"\n\n"; 
    $zag      .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n"; 
     
    return @mail("$to", "$subj", $zag, $head); 
} 
?>

Приведем ссылки на некоторые более «продвинутые» классы:

  • http:/renoir.vill.edu/~ylee/mailfile.txt
  • http:/irbp.ru/mime_mail-imgs.html
  • http:/php.spb.ru/php/mail.html

2 Использование сокетов

<?php
function socketmail($server, $to, $from, $subject, $message) { 
    $connect = fsockopen ($server, 25, $errno, $errstr, 30); 
    fputs($connect, "HELO localhost\r\n"); 
    fputs($connect, "MAIL FROM: $from\n"); 
    fputs($connect, "RCPT TO: $to\n"); 
    fputs($connect, "DATA\r\n"); 
    fputs($connect, "Content-Type: text/plain; charset=utf-8\n"); 
    fputs($connect, "To: $to\n"); 
    fputs($connect, "Subject: $subject\n"); 
    fputs($connect, "\n\n"); 
    fputs($connect, stripslashes($message)." \r\n"); 
    fputs($connect, ".\r\n"); 
    fputs($connect, "RSET\r\n"); 
} 
?>

3 Использование sendmail

<?php
$sendmail = "/usr/sbin/sendmail -t -f $sender -C /etc/sendmail.orig.cf"; 
$fd = popen($sendmail, "w"); 
fputs($fd, "To: [email protected]\r\n"); 
fputs($fd, "From: \"Sender Name\" \r\n"); 
fputs($fd, "Subject: Finally\r\n"); 
fputs($fd, "X-Mailer: Mailer Name\r\n\r\n"); 
fputs($fd, $body); 
pclose($fd); 
?>

3 Использование ActiveX

<?php
@$CDONTS = new COM("CDONTS.NewMail"); 

@$CDONTS->From = "[email protected]"; 
@$CDONTS->To = "[email protected]"; 
@$CDONTS->CC = "[email protected]"; 
@$CDONTS->BCC = "[email protected]"; 

@$CDONTS->BodyFormat = 0; 
@$CDONTS->MailFormat = 0; 

/@$CDONTS->AttachFile("c:\file.txt"); 

@$CDONTS->Subject = "Using CDONTS with PHP4 and IIS"; 
@$CDONTS->Body = "Blah blah blah blah, bleh..."; 

@$CDONTS->Send(); 
@$CDONTS->Close(); 
?>

Либо даже так

<?php
$objApp = new COM("Outlook.Application"); 
$myItem = $objApp->CreateItem(olMailItem); 
$a=$myItem->Recipients->Add("[email protected]"); 
$myItem->Subject="Subject"; 
$myItem->Body="This is a Body Section now.....!"; 
$myItem->Display(); 
$myItem->Send(); 
?>

Features

  • Probably the world’s most popular code for sending email from PHP!
  • Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more
  • Integrated SMTP support – send without a local mail server
  • Send emails with multiple To, CC, BCC and Reply-to addresses
  • Multipart/alternative emails for mail clients that do not read HTML email
  • Add attachments, including inline
  • Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings
  • SMTP authentication with LOGIN, PLAIN, CRAM-MD5, and XOAUTH2 mechanisms over SMTPS and SMTP+STARTTLS transports
  • Validates email addresses automatically
  • Protects against header injection attacks
  • Error messages in over 50 languages!
  • DKIM and S/MIME signing support
  • Compatible with PHP 5.5 and later, including PHP 8.1
  • Namespaced to prevent name clashes
  • Much more!

Отправка формы

Рассмотрим один типичный пример — форма обратной связи. Для связи пользователей с авторами сайта, как правило, используются формы обратной связи, где человек указывает имя, почту для обратной связи и текст своего сообщения.
Такая форма в HTML может выглядеть следующим образом:

Это очень простая форма, состоящая из трёх полей и одной кнопки отправки.

Почти весь приведённый код описывает внешний вид и содержание формы, но следует обратить внимание на два атрибута тега , которые нужны для указания на способ обработки данных:

  • — этот атрибут используется для определения метода HTTP, который будет использован для передачи данных на сервер. Вы уже знакомы с HTTP-методом , предписывающим серверу просто вернуть определённый документ.
    Метод сообщает о намерении передать на сервер некоторую информацию, что, впрочем, не отменяет последующее получение контента.
  • — содержит адрес PHP-скрипта, который должен обработать эту форму.

После нажатия на кнопку «отправить», браузер выполняет POST запрос со введёнными данными на адрес, указанный в атрибуте .

Прикрепление файлов

По умолчанию, при создании новой компании для отправки рассылки нет возможности прикреплять файлы. Чтобы это исправить, заходим на сервер по SSH и открываем следующий конфигурационный файл:

vi /var/www/phplist/config/config.php

* где /var/www/phplist — путь по расположения портала phplist.

Добавляем:

define(«ALLOW_ATTACHMENTS»,1);
define(«NUMATTACHMENTS»,1);
define(«FILESYSTEM_ATTACHMENTS»,1);
define(«MIMETYPES_FILE»,»/etc/mime.types»);
define(«DEFAULT_MIMETYPE»,»application/octet-stream»);
$attachment_repository = ‘/tmp’;

В списке вкладок при создании компании появится «Вложения»:

Установка готовой бесплатной формы обратной связи на сайт

Итак, на одном сайтов установлена вот такая «кнопка»:

Если нажать на нее, вниз «выпадет» форма обратной связи:

На другом сайте установлена всплывающая (popup) форма обратной связи, выглядит она так:

А вот что придет вам на почту, после того как пользователь оставит свои контактные данные в форме:

Очень удобно. Вот код для работы формы как в первом случае:

<div id=»form»><p><a style=»text-decoration: none; border-bottom: 1px dotted; cursor: pointer;» id=»forma0″>Заказать звонок<a><p><div id=»forma1″ style=»display:none; background-color: #fff;»><script src=»sendmailforms/jquery.maskedinput-1.2.2.min.js» type=»text/javascript»><script><link rel=»stylesheet» type=»text/css» href=»sendmailforms/form.css» ><script src=»sendmailforms/wait_for_call.js» type=»text/javascript»><script><script src=»sendmailforms/ajaxupload.js» type=»text/javascript»><script><script src=»sendmailforms/upload_file.js» type=»text/javascript»><script><div class=»call-me-form» title=»Заказать звонок» button=»Заказать звонок» style=»width: 200px»><div><div><script>
$(«#forma0»).toggle(function() {
$(«#forma1»).slideDown(«slow»);
}, function() {
$(«#forma1»).slideUp(«slow»);
});<script><div>

Расшифровываю: в скрытом div-блоке подгружается скрипт и все что с ним связано, этот блок при помощи JavaScript открывается и все — можно оставлять свои данные. Преимущество такого подхода — пользователю не нужно ждать, пока там что-то подгрузится еще.

Примерно также работает скрипт и на другом сайте, где форма обратной связи показывается во всплывающем окне.

Приведу содержимое конфиг-файла

Все! Больше ничего нет, остальное (стили) — вручную. Но они и так везде вручную. При этом форма использует Ajax, выводит сообщения об ошибке, а еще можно задать свою собственную маску номеров. Вот скриншоты:

После отправки номера, пользователю увидит ваше сообщение, которое также можно задать.

Это проверенное решение, которым я вполне доволен. Я нашел в этом скрипте для себя несколько преимуществ:

1. Он присылает URL страницы, с которой была отправлена заявка через форму.

2. На одной странице может быть несколько таких форм обратной связи и они никак не будут конфликтовать друг с другом.

3. Форма подгружается не PHP-кодом, а div-блоком — это упрощает ее вставку в любое место сайта на порядок. Можно даже в тексте вставлять, если умеете.

И он тоже позволяет загружать файл, то есть ничем не уступает.

Ну а про онлайн конструкторы и навороченные генераторы скриптов обратной связи — как-нибудь в другой раз. Может заодно еще и формы для WordPress обсудим. Посмотрим.

А комментариях давайте делиться своими наработками и ссылками, раз я уже поделился, теперь ваша очередь. Буду очень рад если вы поделитесь своими проверенными решениями или приведете примеры как сделали форму обратной связи у себя на сайте.

A Simple Example

<?php
//Import PHPMailer classes into the global namespace
//These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader
require 'vendor/autoload.php';

//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer(true);

try {
    //Server settings
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
    $mail->isSMTP();                                            //Send using SMTP
    $mail->Host       = 'smtp.example.com';                     //Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
    $mail->Username   = '[email protected]';                     //SMTP username
    $mail->Password   = 'secret';                               //SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
    $mail->Port       = 465;                                    //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`

    //Recipients
    $mail->setFrom('[email protected]', 'Mailer');
    $mail->addAddress('[email protected]', 'Joe User');     //Add a recipient
    $mail->addAddress('[email protected]');               //Name is optional
    $mail->addReplyTo('[email protected]', 'Information');
    $mail->addCC('[email protected]');
    $mail->addBCC('[email protected]');

    //Attachments
    $mail->addAttachment('/var/tmp/file.tar.gz');         //Add attachments
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    //Optional name

    //Content
    $mail->isHTML(true);                                  //Set email format to HTML
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

You’ll find plenty to play with in the examples folder, which covers many common scenarios including sending through gmail, building contact forms, sending to mailing lists, and more.

That’s it. You should now be ready to use PHPMailer!

Ограничения при использовании мастера слияния в MS Word

Функция слияния почты в MS Word решает важную задачу персонализации массовых писем. Однако слияние почты в Word имеет некоторые ограничения.

Запутанный процесс

Инструмент слияния писем MS Word обладает широкими возможностями, но процесс слияния не самый простой.

  • Процедура настройки довольно сложна и отнимает много внимания и времени у пользователей начального уровня.
  • Хотя Пошаговый мастер слияния призван упростить процесс, он лишает вас возможности выполнять действия в удобном для вас порядке. Вам придется изучить принцип работы инструмента и запомнить последовательность действий.
  • Для слияния почты в MS Office вам необходимо использовать различные программы: Outlook, Microsoft Word, а часто еще и Excel или Access.
  • Настройка Просмотр писем на самом деле не позволяет увидеть, как будут выглядеть электронные письма Outlook, а только просмотреть финальный текст сообщений.

Ограниченные настройки

Word предоставляет хорошие возможности для настройки пользовательских полей слияния в тексте письма, но не имеет возможностей для настройки темы, копии или скрытой копии. Эти ограничения значительно снижают эффективность ваших кампаний по почтовым рассылкам.

Ограничения слияния

Основным ограничением слияния почты в MS Word является то, что вы не можете добавлять вложения в письма, созданные в процессе слияния. Для этого необходимо использовать еще один инструмент, что делает весь процесс еще более сложным.

Отправка форм

Последнее обновление: 15.03.2021

Одним из основных способов передачи данных веб-сайту является обработка форм. Формы представляют специальные элементы разметки HTML, которые содержат
в себе различные элементы ввода — текстовые поля, кнопки и т.д. И с помощью данных форм мы можем ввести некоторые данные и отправить их на сервер. А сервер уже обрабатывает эти данные.

Создание форм состоит из следующих аспектов:

  • Создание элемента в разметке HTML

  • Добавление в этот элемент одно или несколько поле ввода

  • Установка метода передачи данных. Чаще всего используются методы или

  • Установка адреса, на который будут отправляться введенные данные

POST-запросы

Итак, создадим новую форму. Для этого определим новый файл form.php, в которое поместим следующее содержимое:

<!DOCTYPE html>
<html>
<head>
<title>METANIT.COM</title>
<meta charset="utf-8" />
</head>
<body>
<h3>Форма ввода данных</h3>
<form action="user.php" method="POST">
    <p>Имя: <input type="text" name="name" /></p>
    <p>Возраст: <input type="number" name="age" /></p>
    <input type="submit" value="Отправить">
</form>
</body>
</html>

Атрибут элемента указывает, что данные формы будет обрабатывать скрипт user.php,
который будет находиться с файлом в одной папке. А атрибут указывает, что в качестве метода передачи данных будет применяться метод POST.

<?php
$name = "не определено";
$age = "не определен";
if(isset($_POST)){
 
    $name = $_POST;
}
if(isset($_POST)){
 
    $age = $_POST;
}
echo "Имя: $name <br> Возраст: $age";
?>

Для обработки запросов типа POST в PHP используется встроенная глобальная переменная $_POST.
Она представляет ассоциативный массив данных, переданных с помощью метода POST. Используя ключи, мы можем получить отправленные
значения. Ключами в этом массиве являются значения атрибутов у полей ввода формы.

Например, так как атрибут поля ввода возраста имеет значение (),
то в массиве значение этого поля будет представлять ключ «age»:

И поскольку возможны ситуации, когда поле ввода будет не установлено, то в этом случае желательно перед обработкой данных проверять
их наличие с помощью функции isset(). И если переменная установлена, то функция isset() возвратит значение .

Теперь мы можем обратиться к скрипту form.php и ввести в форму какие-нибудь данные:

И по нажатию кнопки введенные данные методом POST будут отправлены скрипту user.php:

Необязательно отправлять данные формы другому скрипту, можно данные формы обработать в том же файле формы. Для этого изменим файл form.php
следующим образом:

<!DOCTYPE html>
<html>
<head>
<title>METANIT.COM</title>
<meta charset="utf-8" />
</head>
<body>
<?php
$name = "не определено";
$age = "не определен";
if(isset($_POST)){
 
    $name = $_POST;
}
if(isset($_POST)){
 
    $age = $_POST;
}
echo "Имя: $name <br> Возраст: $age";
?>
<h3>Форма ввода данных</h3>
<form method="POST">
    <p>Имя: <input type="text" name="name" /></p>
    <p>Возраст: <input type="number" name="age" /></p>
    <input type="submit" value="Отправить">
</form>
</body>
</html>

Поскольку в данном случае мы отправляем данные этому же скрипту — то есть по тому же адресу, то у элемента форма можно не устанавливать
атрибут .

Стоит отметить, что в принципе мы можем отправлять формы и запросом GET, в этом случае для получения тех же значений формы
применяется массив $_GET, который был рассмотрен в прошлой теме:

<!DOCTYPE html>
<html>
<head>
<title>METANIT.COM</title>
<meta charset="utf-8" />
</head>
<body>
<?php
$name = "не определено";
$age = "не определен";
if(isset($_GET)){
 
    $name = $_GET;
}
if(isset($_GET)){
 
    $age = $_GET;
}
echo "Имя: $name <br> Возраст: $age";
?>
<h3>Форма ввода данных</h3>
<form method="GET">
    <p>Имя: <input type="text" name="name" /></p>
    <p>Возраст: <input type="number" name="age" /></p>
    <input type="submit" value="Отправить">
</form>
</body>
</html>

НазадВперед

JavaScript код с jQuery Ajax

Не забудьте перед кодом подключить библиотеку jQuery!

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

Отправляем данные с помощью объекта — предназначенного для кодирования данных, которые необходимо отправить на сервер посредством технологии AJAX (XmlHttpRequest). Для кодирования данных метод использует формат . Это означает то, что можно подготовить для отправки по AJAX не только текстовые данные, но и файлы ( с атрибутом ).

<script>
$(document).ready(function () {
    $("form").submit(function () {
    // Получение ID формы
    var formID = $(this).attr('id');
    // Добавление решётки к имени ID
    var formNm = $('#' + formID);
    $.ajax({
      type: "POST",
      url: '/send.php',
      data: new FormData(formNm),
	  processData: false,
	  contentType: false,

      beforeSend: function () {
        // Вывод текста в процессе отправки
        $(formNm).html('<p style="text-align:center">Отправка...</p>');
      },
      success: function (data) {
        // Вывод текста результата отправки
        $(formNm).html('<p style="text-align:center">'+data+'</p>');
      },
      error: function (jqXHR, text, error) {
        // Вывод текста ошибки отправки
        $(formNm).html(error);
      }
    });
    return false;
  });
});
</script>

Как отправить файл по почте

В этом уроке я покажу, как отправить файл по электронной почте. Мы научимся пересылать документы, фотографии и другие данные через Майл, Яндекс и Gmail.

Данные, которые пересылают по интернету, называются вложениями или прикрепленными файлами (аттачментами).

Как добавить файл к письму

Технология пересылки файлов по почте следующая:

  1. Заходим в свой ящик в интернете. Делается это через почтовый сайт, на котором находится адрес: Майл (mail.ru), Яндекс (yandex.ru), Google (gmail.com) или другой.
  2. Нажимаем на «Написать письмо».
  3. Заполняем форму: указываем email получателя, тему и, если необходимо, печатаем сообщение.
  4. Щелкаем по специальной кнопке для добавления вложения. Откроется окно выбора данных с компьютера. Добавляем через него файл.
  5. Нажимаем на «Отправить».

После этого сообщение с вложением уходит по указанному адресу. В ящике остается копия – она попадаем в папку «Отправленные».

При быстром интернете пересылка занимает несколько секунд.

Пример

1 . Сначала нужно зайти в ящик. Для этого открыть сайт, на котором он находится, ввести логин и пароль.

Подробнее об этом читайте в уроке Моя электронная почта.

2 . Затем нажать на кнопку для составления письма. Вот как она выглядит в разных сервисах:

Яндекс.Почта Mail.ru Gmail.com

3 . Далее заполнить форму:

  • Напечатать адрес получателя.
  • Указать тему письма.
  • Набрать сообщение (если нужно).

4 . Для загрузки файла щелкнуть на специальную кнопку. Обычно она находится вверху или внизу — над или под частью для ввода текста.

Яндекс.Почта Mail.ru Gmail.com

Появляется небольшое окошко для выбора данных с компьютера. Через него нужно выбрать объект для пересылки.

Допустим, мне необходимо выбрать документ, который находится в Локальном диске D в папке «Договоры». Значит, в окошке перехожу в Локальный диск D.

Показываются файлы, которые есть в этой папке. Нахожу среди них нужный и щелкаю по нему два раза левой кнопкой мыши.

Окошко исчезает, а мой документ появляется на странице.

в Яндекс.Почте:

в Mail.ru:

в Gmail.com:

Если файл большого размера (от 1 МБ), он будет какое-то время закачиваться. В случае с объемными данными (от 35 МБ) загрузка будет происходить сразу на облако.

5 . Когда вложение загружено, нужно нажать на «Отправить».

Сразу после этого сообщение с вложением уйдет по указанному адресу. Вот как его увидит получатель:

Обратите внимание на иконку с изображением скрепки в конце. Таким образом сервис показывает, что внутри есть аттачмент

Открыв письмо, получатель увидит и текст, и документ, которой сможет посмотреть или скачать на свой компьютер.

Как переслать несколько файлов

В одно письмо можно добавить несколько объектов любого типа. Это могут быть фото, документы, музыка и даже видео.

Для этого вовсе необязательно посылать несколько писем – можно написать одно и вложить в него всё, что нужно. Происходит это так: добавляем в сообщение один файл, затем, точно также, второй, третий и так далее.

А что делать, если объектов много, например, двадцать?! Можно ли добавить папку целиком, а не каждый из них по отдельности?!

Отправить папку по интернету нельзя. Но ее можно заархивировать и прикрепить к письму.

Покажу, как это сделать прямо в окошке, через которое мы добавляем файл для отправки.

Кликаем правой кнопкой мыши по папке, из списка выбираем 7-Zip или WinRAR и создаем архив.

Затем выбираем только что созданный архив — щелкаем по нему два раза левой кнопкой мыши.

Архив, в котором находится нужная для пересылки папка, прикрепляется к письму. Остается только его отправить.

Подробнее об архивации можно узнать из этого урока.

Нюансы

1 . Если нужно переслать более трех файлов в одном письме, лучше их заархивировать.

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

В итоге отправится один объект, а не десять. Получателю будет проще его скачать и разархивировать, чем смотреть (скачивать) каждый снимок отдельно.

2 . Перед пересылкой фото следует сжимать — уменьшать размер.

Сделать это можно в любой программе для редактирования изображений. Например, в стандартной Paint (есть в Пуске). Подробнее об этом читайте в уроке Сжатие фото.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: