Доброго времени суток!
Подскажите пожалуйста
есть скрипт формирующий лог файл и последующей отправкой его на почту.
В целом скрипт работает, но есть проблема с отправкой на почту, т .е mail приходит, но сообщение в аттаче с пустым именем, а надо что бы оно приходило в теле письма
Если запускать в ручную из консоли все ок, но если задание запускается через крон то приходит аттачОтправка идет так:
nail -r example@example.ru -s "Thema" -S smtp=smtp.example.ru -S smtp-auth-user=user -S smtp-auth-password=password recipient@example.ru < log2.logКак заставить отправляться в теле письма?
> Как заставить отправляться в теле письма?man mail
>> Как заставить отправляться в теле письма?
> man mailа более подробно можно ... как задать content type я не нашел...
>>> Как заставить отправляться в теле письма?
>> man mail
> а более подробно можно ... как задать content type я не нашел...Sending mail from scripts
>>>> Как заставить отправляться в теле письма?
>>> man mail
>> а более подробно можно ... как задать content type я не нашел...
> Sending mail from scripts-E пробовался, сообщение все равно приходит в аттаче...
>>>>> Как заставить отправляться в теле письма?
>>>> man mail
>>> а более подробно можно ... как задать content type я не нашел...
>> Sending mail from scripts
> -E пробовался, сообщение все равно приходит в аттаче...скрипт светите уже.
>>>>>> Как заставить отправляться в теле письма?
>>>>> man mail
>>>> а более подробно можно ... как задать content type я не нашел...
>>> Sending mail from scripts
>> -E пробовался, сообщение все равно приходит в аттаче...
> скрипт светите уже.сам скрипт не вижу смысла публиковать, так как там идут запросы к бд, к другим скриптам и т.д.(с отправкой это ни как не связанно) результат пишется (log.log) собственно его и нужно отправить
вот кусок как происходит отправка:
/bin/cat log.log | /bin/sed 's/\r//g' > log2.log
nail -r user@yandex.ru -s "Parser $DATESTAMP $TIMESTAMP" -S smtp=smtp.yandex.ru -S smtp-auth-user=user -S smtp-auth-password=password user@domain.ru < log2.log
>[оверквотинг удален]
>>>> Sending mail from scripts
>>> -E пробовался, сообщение все равно приходит в аттаче...
>> скрипт светите уже.
> сам скрипт не вижу смысла публиковать, так как там идут запросы к
> бд, к другим скриптам и т.д.(с отправкой это ни как не
> связанно) результат пишется (log.log) собственно его и нужно отправить
> вот кусок как происходит отправка:
> /bin/cat log.log | /bin/sed 's/\r//g' > log2.log
> nail -r user@yandex.ru -s "Parser $DATESTAMP $TIMESTAMP" -S smtp=smtp.yandex.ru -S smtp-auth-user=user
> -S smtp-auth-password=password user@domain.ru < log2.logмляяя.... хватит тупить (похрен откуда и какие данные). команду крона покажите.
и покажите еще $PATH & pwd, когда у Вас из консоли нормально отправка идет. Доступно?
>[оверквотинг удален]
>> сам скрипт не вижу смысла публиковать, так как там идут запросы к
>> бд, к другим скриптам и т.д.(с отправкой это ни как не
>> связанно) результат пишется (log.log) собственно его и нужно отправить
>> вот кусок как происходит отправка:
>> /bin/cat log.log | /bin/sed 's/\r//g' > log2.log
>> nail -r user@yandex.ru -s "Parser $DATESTAMP $TIMESTAMP" -S smtp=smtp.yandex.ru -S smtp-auth-user=user
>> -S smtp-auth-password=password user@domain.ru < log2.log
> мляяя.... хватит тупить (похрен откуда и какие данные). команду крона покажите.
> и покажите еще $PATH & pwd, когда у Вас из консоли нормально
> отправка идет. Доступно?команда в кроне 0 20 * * 1,2,3,4,5 root sh /var/parsers/romarin_parser/romarin.sh
pwd
/var/parsers/romarin_parserecho $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/val/.local/bin:/home/val/bin
>[оверквотинг удален]
>>> nail -r user@yandex.ru -s "Parser $DATESTAMP $TIMESTAMP" -S smtp=smtp.yandex.ru -S smtp-auth-user=user
>>> -S smtp-auth-password=password user@domain.ru < log2.log
>> мляяя.... хватит тупить (похрен откуда и какие данные). команду крона покажите.
>> и покажите еще $PATH & pwd, когда у Вас из консоли нормально
>> отправка идет. Доступно?
> команда в кроне 0 20 * * 1,2,3,4,5 root sh /var/parsers/romarin_parser/romarin.sh
> pwd
> /var/parsers/romarin_parser
> echo $PATH
> /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/val/.local/bin:/home/val/binecho $SHELL для юзера из под которого скрипт нормально срабатывает из комндной строки.
PS
и читайте Lavr-а. )
>[оверквотинг удален]
> есть скрипт формирующий лог файл и последующей отправкой его на почту.
> В целом скрипт работает, но есть проблема с отправкой на почту, т
> .е mail приходит, но сообщение в аттаче с пустым именем, а
> надо что бы оно приходило в теле письма
> Если запускать в ручную из консоли все ок, но если задание запускается
> через крон то приходит аттач
> Отправка идет так:
> nail -r example@example.ru -s "Thema" -S smtp=smtp.example.ru -S smtp-auth-user=user
> -S smtp-auth-password=password recipient@example.ru < log2.log
> Как заставить отправляться в теле письма?давайте чуть более понятно:
1) Вы хотите чтобы в теле письма НЕ БЫЛО attachment'а, а вместо него был текст?
2) С командной строки у Вас это получается?1) чтобы не было attachment'а, необходимо что? - чтобы в headers не было mime
заголовоков - это значит что headers должны содержать только ascii символы, в том
числе и Subject. В теле письма должны быть ascii символы без спец.символов и ограничение
на длину строки (если память не изменяет, кстати в headers тоже)если хотим чтобы в headers были mime заголовки, но тело письма содержало 8bit
символы, значит нужно смотреть как и можно ли через переменные set nailrc задать
content-type и content-transfer-encoding, ну например:Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="KOI8-R"еще раз: должны быть ascii символы и НЕ ДОЛЖНО БЫТЬ СПЕЦСИМВОЛОВ, даже при
задании content...2) с командной строки у Вас работает, а через cron - нет, чем отличается?
- использованием nailrc
- locale или переменная LANG
- mimetype который использует nail для разных расширений файлов (смотрите из какого файла
nail берет ассоциации mime)
Всем спасибо! решилось, проблема была в locale
> Всем спасибо! решилось, проблема была в localeитог: если без эмоций все расписать, то оказывается просто?
>> Всем спасибо! решилось, проблема была в locale
> итог: если без эмоций все расписать, то оказывается просто?просто прописал LANG=en_US.UTF-8
и все заработало как надо
>>> Всем спасибо! решилось, проблема была в locale
>> итог: если без эмоций все расписать, то оказывается просто?
> просто прописал LANG=en_US.UTF-8
> и все заработало как надоеще раз спасибо