Скрипт почты. Скрипт для отправки сообщения по e-mail, с использованием протокола SMTP

18.04.2019

Влад Мержевич

За счет того, что содержимое ячеек таблицы можно одновременно выравнивать по горизонтали и вертикали, расширяются возможности по управлению положением элементов относительно друг друга. Таблицы позволяют задавать выравнивание изображений, текста, полей формы и других элементов относительно друг друга и веб-страницы в целом. Вообще, выравнивание в основном необходимо для установки зрительной связи между разными элементами, а также их группирования.

Центрирование по вертикали

Одним из способов показать посетителю направленность и название сайта является использование сплэш-страницы. Это первая страница, на которой, как правило, расположена flash-заставка или рисунок, выражающий главную идею сайта. Изображение также является и ссылкой на остальные разделы сайта. Требуется поместить этот рисунок по центру окна браузера вне зависимости от разрешения монитора. Для этой цели можно воспользоваться таблицей с шириной и высотой равной 100% (пример 1).

Пример 1. Центрирование рисунка

Выравнивание

В данном примере выравнивание по горизонтали устанавливается с помощью параметра align="center" тега , а по вертикали содержимое ячейки можно не центрировать, поскольку это положение задано по умолчанию.

Чтобы высота таблицы устанавливалась как 100%, необходимо убрать , код при этом перестает быть валидным.

Использование ширины и высоты на всю доступную область веб-страницы гарантирует, что содержимое таблицы будет выравниваться строго по центру окна браузера, независимо от его размеров.

Выравнивание по горизонтали

За счет сочетания атрибутов align (горизонтальное выравнивание) и valign (вертикальное выравнивание) тега , допустимо устанавливать несколько видов положений элементов относительно друг друга. На рис. 1 показаны способы выравнивания элементов по горизонтали.

Рассмотрим некоторые примеры выравнивания текста согласно приведенному рисунку.

Выравнивание по верхнему краю

Для указания выравнивания содержимого ячеек по верхнему краю, для тега требуется установить атрибут valign со значением top (пример 2).

Пример 2. Использование valign

Выравнивание

Колонка 1 Колонка 2

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

Пример 3. Применение стилей для выравнивания

Выравнивание

Колонка 1 Колонка 2

Для сокращения кода в данном примере используется группирование селекторов, поскольку свойства vertical-align и padding применяются одновременно к двум ячейкам.

Выравнивание по нижнему краю делается аналогично, только вместо значения top используется bottom .

Выравнивание по центру

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

В подобном случае формула располагается строго по центру окна браузера, а ее номер — по правому краю. Для такого размещения элементов понадобится таблица с тремя ячейками. Крайние ячейки должны иметь одинаковые размеры, в средней ячейке выравнивание делается по центру, а в правой — по правому краю (пример 4). Такое количество ячеек требуется для того, чтобы обеспечить позиционирование формулы по центру.

Пример 4. Выравнивание формулы

Выравнивание

(18.6)

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

Выравнивание элементов формы

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

Чтобы текст возле полей формы был выровнен по правому краю, а сами элементы формы — по левому, потребуется таблица с невидимой границей и двумя колонками. В левой колонке будет размещаться собственно текст, а в правой текстовые поля (пример 5).

Пример 5. Выравнивание полей формы

Выравнивание

Имя
E-mail
Комментарий

В данном примере, для тех ячеек, где требуется задать выравнивание по правому краю, добавлен атрибут align="right" . Чтобы надпись «Комментарий» располагалась по верхней границе многострочного текста, для соответствующей ячейки устанавливается выравнивание по верхнему краю с помощью атрибута valign .

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

SendMail - это инструмент для организации рассылки почтовых сообщений с вашего сайта любой информации и включает в себя всё то, что нужно email-маркетинтологу. Скрипт удобен в управлении, прост в установке, универсален в настройке и требует минимальных требований от хостинга. Скрипт написан на языке программирования PHP, имеет множество полезных функций и возможностей, к примеру такие как создание списка рассылок с сортировкой по категориям, визуальный редактор шаблонов писем, рассылка писем с вложением, рассылка через SMTP сервер, возможность использовать скрипт как автореспондер, импорт/экспорт базы элетронных адресов почты и многое другое.

Требование:

1. PHP 5.1 и выше;

2. База данных MySQL 4.1 и выше;

3. Поддержка функции mail()

Функции скрипта:

1. Отправка почту через smtp сервер(используя сокеты), или через стандартную функцию mail();

6. Поддержка большинства известных кодировок;

8. Персонализация писем;

9. Уведомления о прочтении писем;

10. Возможность задавать приоритет отправки писем;

14. Визуальный редактор шаблонов писем TinyMCE;

16. Управление списком подписчиков;

18. Резервное копирование базы данных;

19. Импорт адресов электронной почты из текстового файла;

20. Экспорт базы адресов электронной почты в текстовый файл;

21. Уведомление о новом подписчике;

22. Введение лога отправленных писем.

Инструкция по установке:

1. Распакуйте архив и скопируйте содержимое архива в любую папку на Вашем веб сервере (к примеру в папку sendmail), установите базу данных, запустив install.php и дальше по инструкции. После завершения установки базы данных, удалите файл install.php он больше не нужен. Если по каким-либо причинам не удалось установить скрипт через веб браузер, можно установить вручную, для этого откройте файл admin/lib/connect.inc в блокноте или в любом другом текстовом редакторе. Укажите настройки подключения (хост или IP, имя базы данных, логин и пароль) и установите таблицы базы данных в MySQL из файла SENDMAIL.sql.

2. Вставьте код формы в вашу web-страницу.

(.*)<\/div>/isU", $get_content, $out); echo $out; ?>

Имя

E-mail

3. В теге form для парметра action="" пропишите путь к файлу sendmail.php относительно вашей web страницы (например action="sendmail/sendmail.php" ). Задайте права доступа(CHMOD) для файлов addsend.php, editsend.php, import.php и backup.php - 644, а для папок - 755.

Зайдите в панель администрирования и введите пароль 1111, далее укажите необходимые настройки. Возможно потребуется установить другие права доступа (CHMOD).(смотрите. раздел FAQ своего хостинг провайдера).

  • Объект класса CDO.Message . Описание полей этого объекта можно посмотреть (Message Fields) и (urn:schemas:mailheader: Namespace).
  • Объект класса CDO.Configuration Описание полей объекта конфигурации можно посмотреть (Configuration Fields) и (http://schemas.microsoft.com/cdo/configuration/ Namespace).

Скрипт очень простой, т.к. выполняет очень простые действия: отправляет письмо на английском языке, используя smtp-сервер (без авторизации на оном smtp-сервере). Зачастую, для выполнения простых административных задач (например, отправки каких-либо alert’ов) этого бывает достаточно. А что, если же нам захочется большего? Давайте попробуем усовершенствовать скрипт.

А что, если smtp-сервер требует аутентификацию (например, если в качестве smtp-сервера мы захотим использовать smtp.mail.ru, то мы не сможем это сделать без предварительной аутентификации)? Давайте попробуем аутентифицироваться, для этого нам потребуется добавить всего 3 строчки внутрь блока with{…} , для изменения объекта конфигурации, после чего этот блок кода примет следующий вид (добавленные строки отображаются на темном фоне):

With (objEmail.Configuration.Fields) { Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2; //посылать сообщения по сети (используя SMTP) Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mailserver"; //ip или DNS-имя smtp-сервера Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25; // порт smtp-сервера Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1; // используем basic authentication Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"; //имя пользователя Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "userpassword"; //пароль пользователя Update(); }

ObjEmail.Subject = "это тестовое письмо"; objEmail.Textbody = "это тестовое письмо, его можно удалить";

…, то на принимающей стороне получим нечитабельную тарабарщину, т.к. по умолчанию текстовые части письма должны содержать простой текст в кодировке US-ASCII. Чтобы исправить положение, мы должны указать кодировку письма. Так, для передачи сообщений на русском языке, мы должны выбрать одну из следующих кодировок: “windows-1251”, “koi8-r”, “utf-7” или “utf-8”, что мы и сделаем, задав значение поля Charset :

ObjEmail.BodyPart.CharSet = "utf-8";

Ну, и наконец, если нам потребуется добавить к e-mail какие-либо файлы, в качестве вложений, то для этого используем метод AddAttachment , например, так:

ObjEmail.AddAttachment("c:\\nagent_log.txt");

В результате, получим такой скрипт:

//////////////////////////////////////////////////////////////////////////// // JScript shs smtp_send_mail.js //Этот скрипт предназначен для отправки e-mail с компьютера, //на котором не установлен локальный SMTP-сервис/сервер /////////////////////////////////////////////////////////////////////////// objEmail = WScript.CreateObject("CDO.Message"); //создаем объект CDO.Message // //Зададим значения для полей письма. objEmail.From = "[email protected]"; //адрес отправителя objEmail.To = "[email protected]"; //адрес получателя objEmail.BodyPart.CharSet = "utf-8"; //задаем кодовую страницу сообщения objEmail.Subject = "это тестовое письмо"; //тема письма objEmail.Textbody = "это тестовое письмо, его можно удалить"; //тело письма objEmail.AddAttachment("c:\\nagent_log.txt"); //добавляем к письму вложение: файл c:\nagent_log.txt // //Зададим значения для полей конфигурации with (objEmail.Configuration.Fields) { Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2; //посылать сообщения по сети, используя SMTP Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mailserver"; //ip или DNS-имя smtp-сервера Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25; // порт smtp-сервера Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1; // используем basic authentication Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"; //имя пользователя Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "userpassword"; //пароль пользователя Update(); } try { objEmail.Send(); } catch(e) { WScript.Echo(e.number); //выводим номер ошибки WScript.Echo(e.message); //выводим соощение об ошибке }

PS Во время работы со скриптом столкнулся с тем, что он без проблем работал с почтовым сервером, находящимся внутри локальной сети, но никак не хотел работать с внешними smtp-серверами (smtp.mail.ru, smtp.yandex.ru и т.п.). Скрипт выдавал ошибку с номером -2147220973 (если перевести в hex, то получим 0x80040213 ). Погуглив , обнаружил, что такая ошибка по-английски звучит, как «The transport failed to connect to the server» и возникает, зачастую, как и в моем случае, по непонятным причинам.
Я «стопятьсот» раз перепроверил скрипт и настройки компьютера и знал, что нигде не ошибся: имя smtp-сервера, имя пользователя и пароль были указаны правильно, никакой файервол не перекрывает доступ во внешний мир, но скрипт упорно вываливался с этой ошибкой. Тогда я попробовал запустить его на проблемной машине от имени другой учетной записи с правами локального администратора – скрипт отработал без ошибок! Я уже было решил, что где-то перестарался и слишком сильно «завинтил гайки» с SRP и NTFS permissions, но в логах ничего подозрительного не обнаружил. Тогда я выдал учетной записи, под которой запускал скрипт, права локального администратора, но это не возымело никакого эффекта – скрипт, по-прежнему, завершался аварийно с ошибкой 0x80040213 ! Стало понятно, что проблема – в профиле пользователя.
Дальнейший «разбор полетов» не производил и просто убил проблемный профиль пользователя. После этого скрипт стал работать, как положено, и больше не выдавал сообщений о мифической невозможности соединиться с smtp-сервером.

» PHP Sendmail Script

PHPSendMail

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

| Скачано: раз

Simple PHP Send Mail

С этим очень ЛЁГКИМ php скриптом, посетители вашего сайта смогут отправлять письма непосредственно вам на почту через форму обратной связи.

| Скачано: раз

PHP + AJAX скрипт отправки форм на E-mail

Универсальный скрипт отправки данных из форм на email. Скрипт идеально подойдет для сайтов типа Landing Page, сайтов визиток и т.д.

| Скачано: раз

PHP Mailer Final с капчей

Скрипт выводит форму и, при заполнении необходимых полей, отправляет на Ваш e-mail сообщение. В скрипт встроена защита от роботов: перед отправкой письма надо ввести капчу.

| Скачано: раз

GentleSource Form Mail

На ваш выбор две опции: или пользователь при помощи редиректа попадает на Thank-You-Page с вашим текстом или же, пользователю отображается информация, о том, что сообщение успешно отправлено.

| Скачано: раз

Micro Mailer

Micro Mailer – это не большой PHP скрипт, который позволяет вам и посетителям вашего сайта отправить письмо любому адресату.

| Скачано: раз

Web4you-FM

Web4you-FM Отправка письма с вашего сайта. Возможности: 1 - Выбор адресата и сколько их будет (от 1 до 4). 2 - Проверка на корректность заполнения формы. Кому. Имени, только буквы...

| v.1.0 | Скачано: раз

Light PHP Contact Form

Настолько простой скрипт отправки почты, через форму обратной связи, что даже человек, не знающий PHP/HTML языка, сможет использовать программу без затруднений...

| Скачано: раз

DodosMail

DodosMail – это простой в установке PHP скрипт, который позволяет отправлять письма через форму обратной связи, на вашем сайте. Вам просто нужно загрузить php файл.

| v.2.5 | Скачано: раз

PHP Contact Form

Скрипт PHP Contact Form включает в себя следующие функции: 1) функция предотвращения спама. Пользователь должен ввести защитный код, также известный как капча.

| Скачано: раз

TPCS Contact (email form)

Этот TPCS Contact скрипт, позволит вашим посетителям связаться с вами через форму обратной связи. Вся информация будет отправлена вам на электронную почту.

| Скачано: раз

Feedback mailer

Feedback mailer перенаправляет всю информацию из формы обратной связи на вашем сайте, напрямую к вам на почту. Этот маленький скрипт очень быстро обрабатывает все запросы.

| v.1.2 | Скачано: раз

Easy PHP Contact Form

Простой, но безопасный PHP скрипт контакта с вебмастером при помощи формы обратной связи с проверкой кода (КАПЧА) для предотвращения спама.

| v.2.1 | Скачано: раз

PHP Contact form (with image verification)

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

| Скачано: раз

CW3 Form Mail

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

| v.3.30 | Скачано: раз

reCAPTCHA Contact Form

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

| v.1.4 | Скачано: раз

phMailer

phMailer – это очень простой PHP скрипт обратной связи, который поддерживает функцию прикрепления файла (attachments) благодаря встроенной mail() function языка PHP.