Linux sendmail send file

how to send a mail with attachment using sendmail command in unix

it was not sending the file as attachment. the contents of the csv file is displayed in the body of the mail with comma separated one. how to send the attachment with sendmail command in unix?

tried with that too getting contents of the csv file is didplayed in the body of the email with comma separated one

6 Answers 6

try -a option before To For example

echo test | mailx -s «Subj» —attach=/home/someuser/test.txt «someemail@gmail.com» or echo test | mailx -s «Subj» -a /home/someuser/test.txt «someemail@gmail.com»

From the question: . but I am getting the error as «-a illegal operation» checked with man mailx command there is no flag like -a .

The sendmail client doesn’t know anything about mime. While you could continue down the road you are going by creating the mime structures in bash, you are in for a painful and buggy journey. Particularly if you have to roll your own base64 implementation in shell script. Some email clients will still handle uuencoded attachments.

( echo "here's the file" uuencode $LogFilePath/file.csv ) | mailx -s "x12 extract for 837 transaction" $email_id 

. support will be patchy at best.

Really you want a mail client which understands MIME properly. There are libraries for most of the major programming languages, but there are also standalone programs which are easy to integrate with scripts — although you may have to compile them yourself. You didn’t tell us what flavour of Linux or if you are the admin of the system (if not, then the admin should have been your first port of call).

I’ve previously used a (presumably different version of) mailx for this and mutt. These are available on Sourceforge and GitHub respectively.

How do I create attachments with sendmail? You don’t. Sendmail is a mail transfer agent (MTA). Creating e-mail messages, including adding attachments or signatures, is the function of a mail user agent (MUA). Some popular MUAs include mutt, elm, exmh, Netscape, Eudora and Pine. Some specialized packages (metamail, some Perl modules, etc.) can also be used to create messages with attachments.

Using a specific mail implementation: s-nail (feature rich mail command), you have the -a switch especially designed to send attachments:

s-nail -s subject -a /path/to/file JohnDoe@example.com 

If you check man mailx , you will see that the -a is for adding headers, it could be confusing.

Читайте также:  Линукс минт не видит флешку

If you want something simple and reliable to send attachments, then here we go.

Add -v to have verbose output, and the progression of base64 operation on that file.

$ LANG=C apt-cache show s-nail [. ] Homepage: https://www.sdaoden.eu/code.html Description-en: feature-rich BSD mail(1) S-nail is a mail processing system with a command syntax reminiscent of ed(1) with lines replaced by messages. It is intended to provide the functionality of the POSIX mailx(1) command and offers (mostly optional) extensions for line editing, IDNA, MIME, S/MIME, SMTP and POP3 (and IMAP). It is usable as a mail batch language. S-nail is a derivative of Heirloom mailx, formerly known as nail, which itself is based upon Berkeley Mail that has a history back to the 70s. 

Источник

4 Ways to Send Email Attachment from Linux Command Line

Once you get familiar to using the Linux terminal, you wish to do everything on your system by simply typing commands including sending emails and one of the important aspects of sending emails is attachments.

Especially for Sysadmins, can attach a backup file, log file/system operation report or any related information, and send it to a remote machine or workmate.

In this post, we will learn ways of sending an email with attachment from the Linux terminal. Importantly, there are several command line email clients for Linux that you can use to process emails with simple features.

Requirement

To effectively and reliably use this tutorial, you must have a working mail system or setup one of the mail transfer agents (MTA’s) for Linux on your system.

A MTA is an application responsible for sending and receiving emails from one host to another.

Below are the various, well known methods of sending email with attachment from the terminal.

1. Using mail Command

mail is part of the mailutils (On Debian) and mailx (On RedHat) package and it is used to process messages on the command line.

$ sudo apt-get install mailutils # yum install mailx

Now its time to send an email attachment using mail command a shown.

In the above command, the flag:

You can as well send an existing message from a file as follows:

2. Using mutt Command

mutt is a popular, lightweight command line email client for Linux.

If you do not have it on your system, type the command below to install it:

$ sudo apt-get install mutt # yum install mutt

You can send an email with attachment using the mutt command below.

3. Using mailx Command

mailx works more like the mutt command and it it also a part of mailutils (On Debian) package.

$ sudo apt-get install mailutils # yum install mailx

Now send the attachment mail from the command-line using mailx command.

4. Using mpack Command

mpack encodes the named file in one or more MIME messages and sends the message to one or more recipients, or writes it to a named file or set of files, or posts it to a set of newsgroups.

$ sudo apt-get install mpack # yum install mpack

To send a message with attachment, run the command below.

Читайте также:  Calculate linux установка nvidia

That’s all! Do you have in mind any other methods of sending emails with attachment from the Linux terminal, that are not mentioned in the list above? Let us know in the comments.

Источник

Отправить электронную почту в Linux из командной строки

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

  • -s: обозначает тему письма
  • -a: для обозначения вложения
  • -c: для копии адреса электронной почты (CC)
  • -b: адрес электронной почты для скрытой копии (BCC)

Linux Отправка электронной почты из командной строки

Мы узнаем о следующих командах для отправки электронных писем в Linux.

1. Использование почтовой команды

Почтовая команда Linux довольно популярна и обычно используется для отправки электронных писем из командной строки. Почта устанавливается как часть пакетов mailutils и mailx в системах Debian и Redhat соответственно. Две команды обрабатывают сообщения в командной строке. Чтобы установить mailutils в системах Debian и Ubuntu, запустите:

$ sudo apt install mailutils -y 

Для дистрибутивов CentOS и RedHat запустите:

Тестирование почтовой команды

Если команда mail успешно установлена, протестируйте приложение, используя следующий формат, и нажмите клавишу ввода:

$ mail –s "Test Email" email_address 

Замените email_address своим адресом электронной почты. Например,

$ mail –s "Test Email" james@example.com 

$ echo "sample message" | mail -s "sample mail subject" email_address 
$ echo "Hello world" | mail -s "Test" james@example.com 

$ mail -s "subject" -A message.txt email_address 

Флаг -A определяет вложение файла. Например;

$ mail -s "Important Notice" -A message.txt james@example.com 

$ mail –s "test header" email_address email_address2 

2. С помощью команды mailx

Mailx — это более новая версия команды mail, которая ранее называлась nail в других реализациях. Mailx существует с 1986 года и был включен в POSIX в 1992 году. Mailx является частью составного почтового пакета Debian, используемого для различных сценариев. Эту почтовую утилиту могут использовать пользователи, системные администраторы и разработчики. Реализация mailx также имеет ту же форму, что и синтаксис командной строки почты. Чтобы установить mailx в системах Debian/Ubuntu, выполните:

Чтобы установить mailx в RedHat и CentOS, выполните:

Тестирование команды Mailx

Вы можете использовать команду echo для направления вывода команде mail без запроса CC и тела сообщения, как показано здесь:

$ echo "message body" | mail -s "subject" email_address 
$ echo "Make the most out of Linux!" | mail -s "Welcome to Linux" james@example.com 

3. Использование команды MUTT

Mutt — это легкий почтовый клиент командной строки для Linux. В отличие от команды mail, которая может выполнять базовые действия, mutt может отправлять вложенные файлы. Mutt также читает электронную почту с серверов POP/IMAP и подключается к локальным пользователям через терминал. Чтобы установить mutt в системах Debian/Ubuntu, запустите:

Чтобы установить mutt в системах Redhat/CentOS, запустите:

Тестирование команды Mutt

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

$ mutt -s "Test Email" email_address < /dev/null 
$ mutt -s "Greetings" james@example.com < /dev/null 

$ echo "Message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- email_address 
$ echo "Hey guys! How's it going ?" | mutt -a report.doc -s "Notice !" -- james@jaykiarie.com 

4. Использование команды mpack

Команда mpack используется для кодирования файла в сообщения MIME и отправки их одному или нескольким получателям или даже для публикации в разных группах новостей. Чтобы установить mpack в системах Debian/Ubuntu, выполните:

Читайте также:  Запуск скрипт файла в линукс

Чтобы установить mpack в системах Redhat/CentOS, выполните:

Тестирование команды mpack

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

$ mpack -s "Subject here" -a file email_address 
$ mpack -s "Sales Report 2019" -a report.doc james@jaykiarie.com 

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

Эта команда — еще один популярный SMTP-сервер, используемый во многих дистрибутивах. Чтобы установить sendmail в системах Debian/Ubuntu, выполните:

$ sudo apt install sendmail 

Чтобы установить sendmail в системах RedHat/CentOS, выполните:

$ sudo yum install sendmail 

Тестирование команды sendmail

Вы можете использовать следующие инструкции для отправки электронной почты с помощью команды sendmail:

Например, я создал файл report.doc со следующим текстом:

Команда для отправки сообщения будет,

Резюме

Хотя клиенты электронной почты с командной строкой намного проще и требуют меньше вычислений, вы можете использовать их только для отправки электронной почты на личные домены электронной почты, а не на домены Gmail или Yahoo, поскольку требуется дополнительная аутентификация. Кроме того, вы не можете получать электронные письма с внешних SMTP-серверов. Как правило, намного проще использовать почтовые клиенты с графическим интерфейсом, такие как Thunderbird или Evolution, чтобы избежать проблемы с недоставленными электронными письмами.

Источник

sending file using sendmail

It gets executed whenever I call this function. Now I have a text file which I want to send using sendmail as attachment or as message in the email it sends. How can I do that? I have tried alot of tricks but nothing seems to work. Please Help.

5 Answers 5

Type uuencode /path/filename.txt | sendmail -s "subject" user@domain in your terminal to send mail.

  • Replace "path" with the actual directory path in which the file to attach is located.
  • Replace "filename.ext" with the actual file name and extension.
  • Replace "subject" with the subject line you want the email to have.
  • Replace "user@domain" with the recipient's email address.

this is the actual process to send mail with attachment.

add uuencode /path/filename.txt before sendmail command in your script. I mean modify it as

I tried the approach but when executing the script it gives the message begin 644 /path/filename.txt and the cursor keeps on blinking.

I have created below script to attach a CSV File. The File is getting generated, but its truncating the header row /column name of CSV incorrectly and also there is one more file thats getting attached with the email, namely 'ATT0001.txt' with every email. Anything wrong that you could found out here?

SCRIPT

( echo "From:"$1; echo "To:"$2; echo "Subject:"$3; echo "MIME-Version: 1.0"; echo "Content-Type:multipart/mixed; boundary=\"B835649000072104Jul07\""; echo "--B835649000072104Jul07"; echo "Content-Type: text/html; charset=\"UTF-8\""; echo "Content-Transfer-Encoding: 7bit"; echo "Content-Disposition: inline"; echo ""; echo "$4"; echo "--B835649000072104Jul07"; echo "Content-Type: text/csv"; echo "Content-Transfer-Encoding: base64"; echo "Content-Disposition: attachment; filename=\"$5\""; base64 "$5" echo "--B835649000072104Jul07"; ) | sendmail -t 

Источник

Оцените статью
Adblock
detector