3

Я пытаюсь отправить электронное письмо с вложением CSV, однако невозможно создать файл локально.

Есть ли способ передать содержимое (у меня есть содержимое в переменной в памяти), отправить sendmail/mail таким образом, чтобы данные отображались как вложения?

2 ответа2

1

Вы можете использовать mailx (пример взят из https://access.redhat.com/solutions/104833) и bash <() :

echo "MESSAGE BODY" | mailx -s "SUBJECT" -a <(echo something | sed 's/thing/thong/g') USER@DOM.TLD

Тот же пример с Mutt:

echo "MESSAGE BODY" | mutt -s "SUBJECT" -a <(echo something | sed 's/thing/thong/g') -- USER@DOM.TLD

все в <() будет выполнено bash, оно создаст для него временный файл и предоставит его в качестве параметра для команды.

-3

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .