The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"sendmail отправляет пустые письма из cron"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / Linux)
Изначальное сообщение [ Отслеживать ]

"sendmail отправляет пустые письма из cron"  +/
Сообщение от deatwisedog (ok) on 01-Фев-16, 10:45 
Добрый день!
Столкнулся с необычной для меня проблемой - не могу отправить письмо из cron через sendmail.
Письмо отправляется, но приходит с пустым телом/сабжем.

Если запускаю скрипт руками - всё работает, но при запуске через крон... Та же история.

Кусок кода с отправкой:

#!/bin/bash
#DATE=$(date +%d_%m_%Y)
MAIL_SUBJECT=""
MAIL_TO="recipient@domain.com"
echo $MAIL_SUBJECT > /mailtext.txt
echo Replication started! >> /mailtext.txt
sendmail $MAIL_TO < /mailtext.txt

Пробовал с разным указанием путей к файлу.
Пробовал и просто mailtext.txt (без указания пути) и /home/user/mailtext.txt

Скрипт в кроне запускается от рута. Куда копать?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "sendmail отправляет пустые письма из cron"  +/
Сообщение от skvernobot (ok) on 01-Фев-16, 11:06 
>[оверквотинг удален]
> #!/bin/bash
> #DATE=$(date +%d_%m_%Y)
> MAIL_SUBJECT=""
> MAIL_TO="recipient@domain.com"
> echo $MAIL_SUBJECT > /mailtext.txt
> echo Replication started! >> /mailtext.txt
> sendmail $MAIL_TO < /mailtext.txt
> Пробовал с разным указанием путей к файлу.
> Пробовал и просто mailtext.txt (без указания пути) и /home/user/mailtext.txt
> Скрипт в кроне запускается от рута. Куда копать?

$ which sendmail
/usr/sbin/sendmail

укажите полный путь к sendmail в скрипте.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "sendmail отправляет пустые письма из cron"  +/
Сообщение от Deatwisedogmobile on 01-Фев-16, 11:34 

> $ which sendmail
> /usr/sbin/sendmail
> укажите полный путь к sendmail в скрипте.

Указал (/usr/sbin/sendmail)
Не помогло. Также пустые письма.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "sendmail отправляет пустые письма из cron"  +/
Сообщение от deatwisedog (ok) on 01-Фев-16, 12:14 
>> $ which sendmail
>> /usr/sbin/sendmail
>> укажите полный путь к sendmail в скрипте.
> Указал (/usr/sbin/sendmail)
> Не помогло. Также пустые письма.

Команда из крона (одна из):

# *  *  *  *  * user-name command to be executed
0 4 * * * root /root/movetomove.sh

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "sendmail отправляет пустые письма из cron"  +/
Сообщение от skvernobot (ok) on 01-Фев-16, 13:24 
>> $ which sendmail
>> /usr/sbin/sendmail
>> укажите полный путь к sendmail в скрипте.
> Указал (/usr/sbin/sendmail)
> Не помогло. Также пустые письма.

echo "Subject: test" | /usr/sbin/sendmail user@domain.com
пиши прям так... )

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "sendmail отправляет пустые письма из cron"  +/
Сообщение от deatwisedog (ok) on 01-Фев-16, 13:36 
>>> $ which sendmail
>>> /usr/sbin/sendmail
>>> укажите полный путь к sendmail в скрипте.
>> Указал (/usr/sbin/sendmail)
>> Не помогло. Также пустые письма.
> echo "Subject: test" | /usr/sbin/sendmail user@domain.com
> пиши прям так... )

Прям так заработало! Уже круто.
Хорошо, а как тогда на вход сэндмэйлу ещё и тело письма вкорячить? Если я правильно понял его ман, то тело для него начинается с новой строки, после сабжа. Перевод каретки внутри echo сделать?

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "sendmail отправляет пустые письма из cron"  +/
Сообщение от lavr email(ok) on 01-Фев-16, 14:02 
>[оверквотинг удален]
>>>> /usr/sbin/sendmail
>>>> укажите полный путь к sendmail в скрипте.
>>> Указал (/usr/sbin/sendmail)
>>> Не помогло. Также пустые письма.
>> echo "Subject: test" | /usr/sbin/sendmail user@domain.com
>> пиши прям так... )
> Прям так заработало! Уже круто.
> Хорошо, а как тогда на вход сэндмэйлу ещё и тело письма вкорячить?
> Если я правильно понял его ман, то тело для него начинается
> с новой строки, после сабжа. Перевод каретки внутри echo сделать?

воспользуйтесь утилитой mail, если не знаете как работает sendmail

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "sendmail отправляет пустые письма из cron"  +/
Сообщение от deatwisedog (ok) on 01-Фев-16, 14:04 
>[оверквотинг удален]
>>>>> укажите полный путь к sendmail в скрипте.
>>>> Указал (/usr/sbin/sendmail)
>>>> Не помогло. Также пустые письма.
>>> echo "Subject: test" | /usr/sbin/sendmail user@domain.com
>>> пиши прям так... )
>> Прям так заработало! Уже круто.
>> Хорошо, а как тогда на вход сэндмэйлу ещё и тело письма вкорячить?
>> Если я правильно понял его ман, то тело для него начинается
>> с новой строки, после сабжа. Перевод каретки внутри echo сделать?
> воспользуйтесь утилитой mail, если не знаете как работает sendmail

Через sendmail я регулярно отправляю уведомления из скриптов, и всё работает.
Но из крона - впервые, вот и хочу разобраться.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "sendmail отправляет пустые письма из cron"  +/
Сообщение от skvernobot (ok) on 01-Фев-16, 14:22 
>[оверквотинг удален]
>>>>> Не помогло. Также пустые письма.
>>>> echo "Subject: test" | /usr/sbin/sendmail user@domain.com
>>>> пиши прям так... )
>>> Прям так заработало! Уже круто.
>>> Хорошо, а как тогда на вход сэндмэйлу ещё и тело письма вкорячить?
>>> Если я правильно понял его ман, то тело для него начинается
>>> с новой строки, после сабжа. Перевод каретки внутри echo сделать?
>> воспользуйтесь утилитой mail, если не знаете как работает sendmail
> Через sendmail я регулярно отправляю уведомления из скриптов, и всё работает.
> Но из крона - впервые, вот и хочу разобраться.

Еще как мне кажется проблема в строчке: echo Replication started! >> путькфайлу/mailtext.txt
Попробуйте её сделать в кавычках: echo "Replication started!"" >> путькфайлу/mailtext.txt

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "sendmail отправляет пустые письма из cron"  +/
Сообщение от deatwisedog (ok) on 01-Фев-16, 15:47 
> Еще как мне кажется проблема в строчке: echo Replication started! >> путькфайлу/mailtext.txt
> Попробуйте её сделать в кавычках: echo "Replication started!"" >> путькфайлу/mailtext.txt

Эффекта, к сожалению, не возымело.
В принципе, я и без проверки думал что не заработает, т.к. изначально строка выглядела примерно так:
sendmail recipient@domain.com < /path/to/file.

А, вот, за подсказку с cat-ом спасибо - помогло.

Сейчас часть кода с отправкой выглядит так:

MAIL_SUBJECT="Subject: It a subject of the mail"
MAIL_TO="recipient@domain.com"

cat - /dir/MessageName.txt | sendmail -t $MAIL_TO
В начало файла загнал Subject: по умолчанию.

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

echo $MAIL_SUBJECT | cat - /dir/MessageName.txt | sendmail -t $MAIL_TO


В этом случае письмо уходит с сабжем из переменной, а сабж из файла игнорируется.
Думаю, вся проблема заключается в том, что cron запускает sendmail в минимальном окружении и есть какие-то отличия в PATH, в таком случае.

Спасибо, [SOLVED] !

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

13. "sendmail отправляет пустые письма из cron"  +/
Сообщение от Pahanivo (ok) on 01-Фев-16, 17:09 
> Через sendmail я регулярно отправляю уведомления из скриптов, и всё работает.
> Но из крона - впервые, вот и хочу разобраться.

рукалицо ....

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

8. "sendmail отправляет пустые письма из cron"  +/
Сообщение от skvernobot (ok) on 01-Фев-16, 14:20 
>[оверквотинг удален]
>>>> /usr/sbin/sendmail
>>>> укажите полный путь к sendmail в скрипте.
>>> Указал (/usr/sbin/sendmail)
>>> Не помогло. Также пустые письма.
>> echo "Subject: test" | /usr/sbin/sendmail user@domain.com
>> пиши прям так... )
> Прям так заработало! Уже круто.
> Хорошо, а как тогда на вход сэндмэйлу ещё и тело письма вкорячить?
> Если я правильно понял его ман, то тело для него начинается
> с новой строки, после сабжа. Перевод каретки внутри echo сделать?

echo "Subject: Testing" | cat - /home/file1.out | /usr/sbin/sendmail -t user@domain.com

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

11. "sendmail отправляет пустые письма из cron"  +/
Сообщение от skvernobot (ok) on 01-Фев-16, 15:51 
>[оверквотинг удален]
>>>> /usr/sbin/sendmail
>>>> укажите полный путь к sendmail в скрипте.
>>> Указал (/usr/sbin/sendmail)
>>> Не помогло. Также пустые письма.
>> echo "Subject: test" | /usr/sbin/sendmail user@domain.com
>> пиши прям так... )
> Прям так заработало! Уже круто.
> Хорошо, а как тогда на вход сэндмэйлу ещё и тело письма вкорячить?
> Если я правильно понял его ман, то тело для него начинается
> с новой строки, после сабжа. Перевод каретки внутри echo сделать?

http://unix.stackexchange.com/questions/168232/what-is-the-f...

тоже полезно может быть.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

12. "sendmail отправляет пустые письма из cron"  +/
Сообщение от deatwisedog (ok) on 01-Фев-16, 16:13 
> http://unix.stackexchange.com/questions/168232/what-is-the-f...
> тоже полезно может быть.

Действительно полезно, спасибо!

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру