Код икс пи ☆ центр автоматизации, сопровождения и поддержки

Отправить емейл из bat файла по smtp

Prerequisites

I assume that you have followed part 1 and part 2 of this tutorial series. If you followed mail server tutorials on other websites, I recommend purging your configurations and start over with my tutorial series, so you are not going to be confused by different setup processes.

PostfixAdmin is written in PHP and requires a database (MySQL/MariaDB, PostgreSQL or SQLite). This article will use MariaDB database. You also need to run Apache or Nginx web server. So basically we are going to need a LAMP or LEMP stack.

If you prefer to use Apache web server, then set up a LAMP stack.

How to set up LAMP stack on CentOS 8/RHEL 8

If you prefer to use Nginx web server, then set up a LEMP stack.

How to set up LEMP stack on CentOS 8/RHEL 8

Once the above requirements are met, let’s install and configure PostfixAdmin.

Gmail

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

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

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

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

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

Метод # 1: Mutt

Матт почтенный почтовый клиент. Он был создан в 1995 году Майклом Элкинсом и с тех пор постоянно обновляется. Несмотря на свой характер командной строки, Mutt поддерживает множество полезных функций, включая макросы клавиатуры, PGP / MIME, цепочку сообщений, вложения и многое другое. Вы можете использовать его с любой почтовой службой, которая предоставляет доступ по протоколам POP3 или IMAP.

Во-первых, вам нужно установить Mutt из репозиториев вашего дистрибутива:

$ судо подходящий установить дворняга

Затем вы можете запустить Mutt:

$ дворняга

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

$ mkdir-п ~.muttтайникзаголовки$ mkdir ~.muttтайниктела$ трогать ~.muttсертификаты$ трогать ~.muttmuttrc

Теперь откройте файл конфигурации в своем любимом текстовом редакторе и скопируйте и вставьте следующую конфигурацию (не забудьте изменить настройки по умолчанию на те, которые соответствуют вашей учетной записи электронной почты Gmail):

# SMTPустановленный smtp_url = «smtp: //:587/»установленный smtp_pass = $ imap_passустановленный ssl_force_tls = да# IMAPустановленный imap_user = имя пользователя@gmail.comустановленный imap_pass = парольустановленный spoolfile = imaps://imap.gmail.comВХОДЯЩИЙустановленный папка = imaps://imap.gmail.comустановленныйзаписывать=»imaps: //imap.gmail.com/ / Отправленное письмо»установленныйперенесенный=»imaps: //imap.gmail.com/ / Черновики»установленныйmbox=»imaps: //imap.gmail.com/ / Вся почта»установленный header_cache = «~ / .mutt / cache / headers»установленный message_cachedir = «~ / .mutt / cache / body»установленный certificate_file = «~ / .mutt / сертификаты»# РЕДАКТОРустановленный редактор = «нано»

10bd2e2e25c6a38bdfb6d5575375759c.png

Теперь вы можете запустить Mutt, и он должен автоматически получать ваши электронные письма. Чтобы отправить первое сообщение электронной почты из командной строки, нажмите «m» на клавиатуре. Выберите не отзывать отложенное сообщение и введите адрес электронной почты получателя, тему сообщения электронной почты и, наконец, тело сообщения.

4159924af01c5540f5f5dfca6f80947d.png

Перед тем, как Mutt отправит электронное сообщение, он позволит вам изменить его и прикрепить файл. Когда вы будете довольны результатом, вы можете нажать «y», чтобы отправить его. Вот как просто отправить электронное письмо из командной строки Linux!

Небольшой ликбез

Битрикс посылает почтовые шаблоны функциями CEvent::Send() и CEvent::SendImmediate().

Письмо отправляется, если Битрикс нашел активный почтовый шаблон, подходящий под это событие и соответствующий текущему сайту.

Если письма отправлены через Send, они попадают в таблицу b_event.

Письма, попавшие в b_event, посылаются на агенте (на хитах) или на cron (по расписанию раз в несколько минут). То есть, они отправляются не сразу.

Агенты – это функции, которые выполняются единоразово или периодически. Если для агента пришло время запуска, он исполняется в процессе генерации страницы. То есть в момент, когда очередной пользователь открыл какую-то страницу сайта.

Cron-задачи – это файлы скриптов, которые по расписанию выполняет сервер. Минимальный шаг расписания – минута. Поставить исполнение чаще невозможно. Выполнение скриптов на cron означает, что скрипт не имеет данных в глобальном массиве $_SERVER и запускается командой из командной строки.

Если у вас на сервере есть другие сайты с симлинками к основному и письма отправляются на хитах — вы не можете заранее знать, с какого сайта технически отправится письмо

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

Стандартные письма, посылаемые через SendImmediate – это письмо при регистрации, смене пароля и другие мгновенные письма. Они не попадают в b_event, а отправляются сразу.

Send и SendImmediate – обертки на функцию Битрикса bxmail, которая использует либо стандартную php-функцию mail, либо custom_mail, если она определена.

Итак, что же могло пойти не так?

Не работает почта? Проблемы на сервере!

Команда HELO

По определению, длина команд протокола SMTP четыре символа. Приветствие, выдаваемое клиентом на сервер, и есть команда HELO. Формат команды следующий:

HELO domain name

Смысл команды HELO заключается в представлении клиента серверу SMTP. К сожалению, этот метод доступа был разработан на начальной стадии развития сети Internet, когда еще не было столь большого числа попыток несанкционированного проникновения в компьютерные системы. Как видите, клиент может назвать себя любым именем в командной строке. Это привело к тому, что в настоящее время большинство серверов SMTP эту команду используют чисто формально. Если они действительно стараются идентифицировать клиента, то подключается механизм обратного преобразования DNS с целью определения действительного имени хоста клиента согласно системе доменных имен по его IP-адресу. Как правило, в целях безопасности серверы SMTP отказывают в установлении соединения хостам, IP-адрес которых не преобразуется в соответствующее имя хоста. Посылая данную команду, клиент уведомляет сервер о желании установить с ним соединение. Отвечая на эту команду, сервер, в свою очередь, уведомляет об установке нового соединения с клиентом и готовности принимать от него последующие команды.

При работе с протоколом SMTP следует различать клиентов SMTP. Пользователи-клиенты и хосты-клиенты не одно и то же. При создании почтового сообщения пользователь системы электронной почты является одновременно и клиентом своего локального хоста. После отправки почтового сообщения он уже не является клиентом процесса SMTP. Теперь его локальный хост-компьютер осуществляет процесс доставки сообщения и сам выступает в качестве клиента SMTP. Когда локальный хост соединяется с удаленным хостом для передачи сообщения с помощью протокола SMTP, он действует как клиент SMTP-процесса. Команда HELO объявляет в качестве клиента имя локального хоста, а не реального пользователя, отославшего сообщение. Довольно часто эти понятия путают, что усложняет решение проблем, возникающих в системах электронной почты.

VRFY

Команда VRFY является сокращением от verify (англ. проверить — Прим. пер.). Ее можно использовать для определения возможности доставки сервером почты определенному получателю перед выполнением команды RCPT. Формат этой команды следующий:

VRFY username

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

Команда VRFY может оказаться эффективным инструментом при поиске неполадок в работе электронной почты. Довольно часто, отправляя почтовые сообщения, пользователи ошибаются при написании имени адресата или хоста и затем недоумевают, почему их сообщения не были получены. Конечно, первое, что они предпримут, — это пожалуются администратору почтовой системы на отвратительную работу системы электронной почты. Как администратор почтовой системы вы, можете проверить работоспособность адресов электронной почты двумя путями. Во-первых, с помощью команды DNS host, которая позволяет определить правильность доменного имени и наличие почтового сервера, обслуживающего домен. И во-вторых, можно зайти с помощью telnet на порт 25 почтового сервера и затем задать команду VRFY, которая определит правильность имени пользователя. В листинге 5.3 показан пример использования команды VRFY для проверки имен пользователей.

1 riley@shadrach riley$ telnet localhost 25
2 Trying 127.0.0.1...
3 Connected to localhost.
4 Escape character is '^]'.
5 220 shadrach.smallorg.org ESMTP Sendmail 8.9.38.9.3; Thu, 26 Aug 1999 19:20:16 -050
6 HELO localhost
7 250 shadrach.smallorg.org Hello localhost 127.0.0.1, pleased to meet you
8 VRFY rich
9 250 <rich@shadrach,smallorg.org>
10 VRFY prez@mechach.smallorg.org
11 252 <prez@mechach.smallorg.org>
12 VRFY jessica
13 550 jessica... User unknown
14 QUIT
15 221 shadrach.smallorg.org closing connection
16 Connection closed by -foreign host.
17 riley@shadrach riley$

В строках 8–13 представлены результаты выполнения команды VRFY. В строке 8 делается попытка выполнить VRFY для локального пользователя rich. Ответ SMTP- сервера в строке 9 подтверждает, что пользователь с таким именем имеется в системе, и клиенту возвращается его полный адрес электронной почты. В строке 10 показан еще один вариант задания команды VRFY. Здесь клиент пытается выполнить команду VRFY для пользователя на удаленном компьютере. Ответ, полученный в строке 11 от системы shadrach, отличается от результата, полученного в строке 9. В разделе «Ответы сервера» значения кодов, возвращаемых сервером, обсуждаются более детально. В нашем случае отметим, что система shadrach уведомляет клиента о том, что почта будет пересылаться пользователю prez на удаленном сервере meshach.smallorg.org. Строка 12 отображает попытку проверить несуществующее имя в системе meshach. Ответ SMTP-сервера в строке 13 в пояснениях не нуждается.

Проверить существования пользователя используя Основы BASH скрипты, циклы, горячие клавиши и curl.$ echo -e «VRFY username@example.com\n QUIT» | curl telnet://mail.example.com:25
220 mail.1-talk.com ESMTP Postfix
252 2.0.0 username@example.com
221 2.0.0 Bye

Способ 9. задачи на cron и сайт работают на разных версиях php

Cron – это просто расписание выполнения определенных консольных команд на сервере. Если это должно быть выполнение скрипта php, то в команде нужно писать путь, куда установлен php. На сервере может стоять несколько версий php. Если у cron-задачи указана не та версия, на которой работает сайт, будут ошибки php при выполнении задачи. Сайт при этом отлично работает.

Например, сайт работает на php 5.6, а задача отправки писем на 5.3, и кто-то из разработчиков добавил в init.php объявление массива через квадратные скобки, а не array(). Сайт работает, но письма не отправляются из-за критичной ошибки php.

Как исправить

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

Доступ к SMTP через telnet (отправка почты).

telnet mail.mydomain.ru 25 mail.mydomain.ru — адрес smtp сервера

25 — smtp-порт сервера с которым должен соедениться telnet 220 mail.mydomain.ru ESMTP Sendmail 8.13.1/8.13.1; Sat, 6 Oct 2007 09:50:16 +0400 ehlo lo ehlo lo — поздоровались с удалённым smtp-сервером 250-ENHANCEDSTATUSCODES

250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5

mail from: test@mydomain.ru тут мы говорим что адрес почтовый отправителя письма test@mydomain.ru 250 2.1.0 test@mydomain.ru. Sender ok поверка отправителя прошла успешно rcpt to: test@remote.ru здесь мы ввели постовый адрес получателя нашего письма test@remote.ru 250 2.1.5 test@remote.ru. Recipient ok проверка получателя прошла успешно data комманда data говорит о том, что дальше пойдёт тело письма 354 Enter mail, end with «.» on a line by itself

ответ сервера говорит нам о том что закончить письмо мы должны набрать точку «.» на новой строке после набранного нами сообщения (тела письма) this test mail bla-bla-bla. это наш текст . точка — даём понять серверу что письмо набрано и его пора отправлять адресату 250 2.0.0 l965oGGR025162 Message accepted for delivery ответ сервера — письмо ушло на отправку

Отправка писем из командной строки Windows используя аккаунт GMail

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

Для этих целей как нельзя лучше подходит маленькая консольная программа для отправки почты — blat — ссылка

Windows отправка почты из командной строки windows

Синтаксис очень простой — достаточно запустить

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

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

Если у вас есть свой локальный почтовый сервер и вы его настраивали, то думаю вопросов у вас не возникнет. Поэтому на этом останавливаться не будем, а лучше рассмотрим вариант с использованием почтового аккаунта всеми известной службы GMail. Тут не все так просто так как при использовании жмаил необходимо указывать безопасные порты с поддержкой SSL (Сервер исходящей почты (SMTP): smtp.gmail.com порт 465) и blat напрямую работать с gmail или почтой из google apps не может.

Решение: использование связки blat + stunnel

1. Скачиваем последнюю версию stunnel — ссылка 2. Настраиваем конфиг stunnel.conf

socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 debug = 7 output = stunnel.log client = yes accept = 127.0.0.1:465 connect = smtp.gmail.com:465

3. Инсталлируем stunnel как сервис командой

или находим в меню ярлык Пуск…

4. Скачиваем blat и распаковываем в каталог, например, C:\send_mail 5. Создаем файл send_mail.cmd:

Подробнее об опциях:

Отправка писем из консоли linux

by rudjuk

Чтобы отослать электронное письмо из командной строки, можно воспользоваться утилитой mail. Также она может встречаться под названием mailx или Mail. Для отправки письма пишем следующую команду:

Комбинация клавиш Ctrl+D (^D) с новой строки позволяет завершить ввод письма. После этого у меня появляется приглашение ввести получателя копии — просто жму «Enter», и письмо отправляется.

Если тело письма находится в файле, то можно просто воспользоваться перенаправлением входного потока:

Аналогично поступаем, если требуется отослать вывод какой-либо команды. Например, следующая команда отошлет мне на мыло содержание текущего каталога:

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

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

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

2. С помощью консольной утилиты mpack. Эта утилита пакует файл в сообщение и отсылает полученное сообщение туда, куда изволите.

3. С помощью полноценного консольного почтового клиента mutt. Можно запустить его, сформировать письмо и отправить куда надо. А можно запустить mutt в режиме эмуляции диалога mailx (параметр -x), при этом передав через параметры все необходимое, чтобы не получать лишних вопросов от этой программы. Второй вариант выглядит так:

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

  • Linux
  • Почта

Другие причины недоставки

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

Еще одна причина – к ответному письму был прикреплен файл очень большого размера. Максимальный размер писем с вложениями, отправляемыми на почтовый ящик на Яндексе, не должен превышать 30 МБ. У других ящиков (Майл ру, Gmail.com и т.п.) тоже есть свои ограничения.

Либо аккаунт получателя был заблокирован из-за нарушения пользовательского соглашения. Когда мы регистрируем почту, всегда ставим галочку напротив «Согласен с условиями использования». Конечно, у нас есть возможность прочитать все условия пользовательского соглашения, но по факту, кто же их читает?…

Установка Postfix

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

Вначале обновите базу данных пакетов:

Затем выполните установку Postfix, запустив следующую команду:

Перед окончанием установки вы увидите окно настройки конфигурации Postfix:

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

Если опция не отображается автоматически, запустите следующую команду:

После этого откроется еще один диалог настройки конфигурации System mail name (имя системной почты):

Имя системной почты System mail name должно совпадать с именем, которое вы присвоили своему серверу при его создании. После завершения настройки нажмите , а затем нажмите .

Мы установили Postfix и готовы приступить к настройке.

Создание, перемещение и удаление

Используйте команду mkdir для создания директории. Не забудьте указать имя:

mkdir dir1

Новая директория будет создана в той директории, где вы находитесь в данный момент, но вы также можете прописать какой-то другой путь для создания новой директории:

mkdir /home/users/dir1

Для создания файла вам нужно ввести команду touch и название будущего файла:

touch file1

В этом случае прописать путь, где нужно создать файл, тоже возможно:

touch /home/users/dir1/file1

Для перемещения директорий и файлов используется команда mv, после которой вы пишете название директории или файла, который хотите переместить, а затем место, куда хотите переместить:

mv file2 /home/users/dir2

mv dir1 /home/users/dir3

Обратите внимание, что команда mv также используется для переименования, поэтому если при отсутствии директории dir2 вы напишете такую команду:

mv dir1 dir2

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

Для удаления файлов следует использовать команду rm, а для удаления директорий rmdir. Если вы хотите удалить каталог, используйте команду rm с ключами -rf:

rm -rf /home/users/

Еще одно действие, которое вы можете использовать, — это копирование при помощи команды cp. Синтаксис у этой команды такой же, как и у предыдущих, — вы просто пишете, что и куда хотите скопировать. Для копирования директории обязательно нужно использовать ключ -r, при этом если конечная директория (dir2) не существует, то она будет создана при копировании:

cp -r dir1 dir2

Отправка почты через командную строку или powershell

Итак, чтобы отправить с «батника» электронное письмо, нужно качнуть http://sourceforge.net/projects/blat/files/ разархивировать и содержимое папки «…\full» скопировать в папку «C:\Windows\System32«, а далее создаем файл send.bat, где пишем

! Хочу обратить внимание на вот эти данные

Так как почтовики сейчас перевели свои smtp сервера на безопасное соединение, типа SSL, поэтому для успешной отправки по данному соединению нужно еще качнуть вот эту беду https://www.stunnel.org/index.html, которую нужно установить, и при установке можно ставить все по умолчанию, без указания каких то параметров.

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

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

чтобы установить программу как службу

чтобы программа запустилась как служба

! Не закрываем командную строку

Потом, открыть и отредактировать файл

C:\Program Files (x86)\stunnel\stunnel.conf

Например, в моем случаи для майл.ру конфиг выглядит так

сберечь отредактированный файл, а далее в незакрытом ранее терминале выполняем

этим самым мы обновляем конфигурационный файл.

Ну, а теперь вернемся к указанию SMTP сервера и порта для отправки почты с командной строки, а именно, заменяем

нами ранее строки в файле send.bat на

rem Порт, взятый из stunnel.conf

Вот и все, кидаем этот «батник» в Планировщик заданий, привязав к какому то событию, или вставляем все содержимое из send.bat в свой батник, например, который делает что-то полезное, и будет вам уведомление, что что-то полезное выполнилось, в моем случае вышло, что один «батник» вызывается Планировщиком, который сначала архивирует файловую базу БД, отправляет БД на фтп сервер и потом отправляет мне сообщение о выполнении.

Так же, приведу пример, для общего обозрения отправки электронного письма с помощью Powershell.

Создадим файл name.ps1 куда поместим

$Subject = «Тема сообщения»

$Body = «Текст сообщения»

$SMTPServer = «127.0.0.1 \ так как и выше, нужно использовать для отправки stunnel»

# 587 здесь иммется ввиду порт, см. выше о stunnel

$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(«Электронный адрес отправителя», «Пароль отправителя»);

550 Your message was identified as SPAM

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

Рекомендации отправителю:

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

Если у вас нет контактных данных администратора домена получателя, воспользуйтесь сервисом Whois.

Рекомендации получателю:

Вы можете добавить домен отправителя в белый список, тогда почта с данного домена не будет проверяться спам-фильтром. Чтобы добавить домен example.net в белый список, необходимо:

  • авторизоваться в панели управления, используя номер своего договора и пароль;
  • перейти в раздел Почта;
  • нажать на название почтового домена;
  • перейти в раздел Спам-фильтрБелый список;
  • добавить маску вида *@example.net в блоке Новая маска почтового адреса и нажать кнопку Создать

Sending Email Using CURL Command

This tool is also tremendously common for data transfer from a server. It supports many protocols, like HTTP, FTP, POP3 or SMTP. The CURL package is used widely around the globe, one main reason is that it has native PHP implementation and PHP was the default server-side scripting language for a long time.

Installation:

Check if the package is already installed. If not run the below:

When you’re done, you can access the cheat sheet for the available options for CURL by running . The more detailed version is accessible by either or . If you want to gain in-depth knowledge using cURL, there’s this handy Ebook that contains everything you would ever want to know.

The syntax is pretty straightforward. You may have noticed before, but you need to end each line of the command with characters. This is a line continuation character, the command can be run without them all in one line as well. The other thing to remember is the option. An excerpt from the man page:

You can apply the same logic of building a form in a text file, which enables you to send HTML messages easily:

If you run the simple command from the first example…

… and direct the parameter to the updated text file (mail.txt in our case), the received message will show the HTML content.

Troubleshooting:

You may need the switch, which allows CURL to perform «insecure» SSL connections and transfers. CURL will return an error message if the remote server is using a self-signed certificate, or if the remote server certificate is not signed by a CA listed in the CA cert file.

Проверка доступности почтового сервера программным методом

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

Одним из способов предупреждения появления ошибок является онлайн-проверка доступности почтового сервера с помощью бесплатных инструментов:

  • https://mxtoolbox.com
  • https://www.ultratools.com
  • http://mail2web.com

Эти сервисы пробуют подключиться к почтовому серверу по SMTP, подтверждают, что у него есть запись обратной зоны DNS, и замеряют время отклика. С их помощью можно диагностировать некоторые ошибки службы почтовых серверов или проверить, не занесен ли данный ресурс в черные списки из-за спама.

Прочитав эту статью, обратите внимание на то, как настроен ваш почтовый сервер на получение сторонних писем по SMTP-протоколу

Быть может, в данный момент ваш антиспам или локальная политика фильтрации входящих сообщений блокирует получение очень важного и нужного для вас месседжа? Проверьте сами или обратитесь к системному администратору. Если ошибку с SMTP никак не удается решить, то попробуйте обратиться в службу поддержки почтового сервера. Если ошибку с SMTP никак не удается решить, то попробуйте обратиться в службу поддержки почтового сервера

Если ошибку с SMTP никак не удается решить, то попробуйте обратиться в службу поддержки почтового сервера.

Не отправляется почта с сайта

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

И вроде бы всё настроено верно, и функция PHP Mail тоже включена (кстати, именно из-за неё мы переехали на нормальный сервер), и скрипт проверки тоже отрабатывает.Но в ящике на Mail.ru и некоторых других тишина. Иногда вроде проходит, но в основном все письма блокируются.

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

В чём же причина?

Недавно в Mail.ru прошло ужесточение DMARC-политики, которое могло коснуться большого количества сайтов.

Теперь нельзя использовать почту от mail.ru для отправки писем с вашего сайта.Т.е. вы не можете отправлять почту со сторонних серверов с адресом отправителя @mail.ru, @bk.ru

Пример настройки в Joomla 3

Исходя из этого, нужно использовать другую почту (Яндекс или Гугл), либо как самое верное решение – создавать почту на своём домене.Вида mail@ваш_сайт.ru Потому что ужесточение DMARC политики может рано или поздно произойти и в почте Яндекса и в почте Гугла.

Тут есть два варианта.

Вариант 1. Если вы не делаете массовых рассылок, то почту для домена можно создать на Яндексе. У них есть специальный сервис – https://pdd.yandex.ru Подробнее о подключении вы можете посмотреть здесь.

Желаю успехов!

Видео

Отправка почты через коммандную строку Windows.aviСкачать

Отправка почты через коммандную строку Windows.avi

Как восстановить загрузку Windows 10 из командной строкиСкачать

Как восстановить загрузку Windows 10 из командной строки

КАК ОТПРАВИТЬ EMAIL С ПОМОЩЬЮ TELNET ПО ПРОТОКОЛУ SMTP?

Как изменить внешний вид командной строки Windows CMDСкачать

Как изменить внешний вид командной строки Windows CMD

SMTP в текстовом режиме | Практика по курсу «Компьютерные сети»Скачать

SMTP в текстовом режиме | Практика по курсу "Компьютерные сети"

Как создать или удалить учетную запись от имени администратора через командную строку в Windows 7 8Скачать

Как создать или удалить учетную запись от имени администратора через командную строку в Windows 7 8

Настройка почтовой программы в Windows 10, 11 в 2022 годуСкачать

Настройка почтовой программы в Windows 10, 11 в 2022 году

Продвинутое восстановление Windows 7, 8, 10: Sfc Dism / ОБУЧЕНИЕ Скачать

Продвинутое восстановление Windows 7, 8, 10: Sfc Dism / ОБУЧЕНИЕ

Командная строка Windows: TXTСкачать

Командная строка Windows: TXT

Планировщик задач ( заданий ) Windows с помощью командной строки.Скачать

Планировщик задач ( заданий ) Windows с помощью командной строки.

Метод № 5: Telnet

Последний метод, который мы хотим рассмотреть, является самым вызывающим из всех, но он может пригодиться в какой-то момент вашей жизни, так что, по крайней мере, хорошо знать о его существовании. Этот метод основан на Telnet, протоколе клиент-сервер, используемом для установления удаленного текстового соединения по сети.

Что замечательно в этом методе, так это то, что клиент Telnet, скорее всего, уже установлен в вашем дистрибутиве Linux. Что не так хорошо, так это то, что нужно пройти много шагов. Поскольку для целей этой статьи мы используем Gmail, вам необходимо убедиться, что ваш telnet-клиент поддерживает шифрование SSL:

$ судо подходящий установить telnet-ssl

Затем вы можете запустить свой клиент Telnet и подключить его к SMTP-серверу Gmail:

$ телнет -z ssl smtp.gmail.com 465

404ae1418af3e8df2a8141e4fddf77b8.png

Поскольку не представиться было бы невежливо, приветствовать сервер можно так:

HELO hellogoogle

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

АВТО ВХОД

Сначала введите свое имя пользователя, закодированное в base64, а затем введите свой пароль, также закодированный в base64. Сервер SMTP должен каждый раз отвечать «334 UGFzc3dvcmQ6».

Пришло время указать свой адрес электронной почты:

ПОЧТА ОТ: <Эл. адрес@gmail.com>

Затем укажите получателя:

RCPT TO: <имя@domain.com>

Наконец, сообщите SMTP-серверу, что вы хотите написать электронное письмо:

ДАННЫЕ

Теперь вы можете ввести тему своего электронного письма и нажать Enter для подтверждения. Перейдите к тексту письма и нажмите клавишу ВВОД для подтверждения. Чтобы закрыть сообщение электронной почты, введите:

Вы должны увидеть подтверждающее сообщение следующего вида: 250 2.0.0 OK 1630506266 n10sm56478ejk.86 — gsmtp

c53aed3cdde02656877aa3ed73c5e0ea.png

Введите следующую команду, чтобы разорвать соединение и отправить электронное письмо:

ПОКИДАТЬ

Step 2: Uninstall Postfix 2 / Sendmail / sSMTP

The next thing we have to do is to ensure that there aren’t any other mail sending softwares configured within our server, unless we really want to keep Postfix 3 and one (or more) of them. In case we don’t, we can easily uninstall all of them with the following terminal commands:

Shell

# sudo yum remove postfix
# sudo yum remove ssmtp
# sudo yum remove sendmail

1
2
3

# sudo yum remove postfix
# sudo yum remove ssmtp
# sudo yum remove sendmail

Although performing a
yum remove  is a required step for Postfix – assuming we want to install a newer version – we could also choose to 
systemctl disable  and 
systemctl stop  sSMTP and/or Sendmail instead of removing them. The only important thing to do here is to ensure that neither of them will be up and running, otherwise they will prevent our soon-to-be-installed Postfix 3 from working properly.

Синтаксис команды Msg

msg {имя_пользователя|имя_сеанса|код_сеанса| @имя_файла|*}

Параметры команды Msg

  • < имя_пользователя — Задает имя пользователя, получающего сообщение.
  • < имя_сеанса — Задает имя сеанса, получающего сообщение.
  • < код_сеанса — Идентифицирует сеанс, пользователь которого получит сообщение.
  • < @имя_файла — Идентифицирует файл, содержащий список имен пользователей, имен сеансов, коды сеансов, которые получат сообщение.
  • < * — Отправляет сообщение всем пользователям в системе.
  • < /server:имя_сервера — Задает сервер терминалов, сеансы или пользователи которого получат сообщение. Если сервер не указан, параметр /server использует текущий сервер.
  • < /time:секунды — Задает время, в течение которого отправленное сообщение будет отображаться на экране пользователя. При завершении этого времени, сообщение пропадает с экрана. Если ограничение времени не задано, то сообщение будет находиться на экране пользователя до тех пор, пока он не нажмет кнопку OK.
  • < /v — Отображает сведения о выполненных действиях.
  • < /w — Устанавливает режим ожидания ответа от пользователя, получившего сообщение. Этот параметр рекомендуется использовать совместно с параметром /time:секунды, чтобы избежать длительной паузы в случае, если пользователь не может ответить немедленно. Можно также использовать этот параметр совместно с параметром /v.
  • < сообщение — Вводится текст отправляемого сообщения. Если текст сообщения не введен, то система либо попросит сделать это, либо будет использовано стандартное сообщение (STDIN). Чтобы отправить сообщение, содержащее файл, введите символ (>) вслед за именем файла.
  • < /? — Отображает справку в командной строке.

Примеры команды Msg

  • Чтобы отправить сообщение с «Встречаемся сегодня в 13-00» для пользователя Администратор, введите: msg Администратор «Встречаемся в 13-00»
  • Чтобы отправить сообщение пользователю Administrator терминального сервера Dell введите msg Administrator /server:Dell  «Привет»
  • Чтобы отправить сообщение отправить текущему локальному пользователю компьютера Windows10, введите: msg /server:Windows10 «Встречаемся сегодня в 17-00»
  • Чтобы отправить сообщение всем сеансам, содержащимся в файле USERLIST, введите: msg @userlist «Встречаемся сегодня в 13-00»
  • Чтобы отправить сообщение всем вошедшим пользователям, введите: msg * «Встречаемся сегодня в 13-00»
  • Чтобы отправить сообщение всем пользователям с отображением сведений о выполненных действиях введите: msg * /v «Встречаемся сегодня в 13-00».

Рекомендуем для просмотра:

  • Query termserver — отображение списка серверов — 02/06/2011 04:06
  • Query process — сведения о процессах на сервере — 02/06/2011 04:02
  • Mstsc — подключение к удаленному рабочему столу Windows — 31/05/2011 16:03
Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

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