Вам необходимо добавить изображение в качестве части MIME в письмо, а затем сослаться на него, используяContent-ID
(CID )уже ответили здесь
Разработчики Courier MTA создали утилиту makemime . Он будет установлен как часть Courier MTA, но в некоторых системах он является независимым пакетом или частью утилиты maildrop .
makemime
упрощает кодирование MIME ваших почтовых сообщений из командной строки. Пример с их страницы:
For example:
# Take two files containing the text and the html version of a message, and
# add MIME headers to them.
makemime -c "text/plain; charset=iso-8859-1" -o tmp1.txt msg.txt
makemime -c "text/html; charset=iso-8859-1" -o tmp1.html msg.html
# Combine the result into a multipart/alternative collection
makemime -m "multipart/alternative" -a "Content-Disposition: inline" \
-o tmp.ma1 tmp1.txt
makemime -j tmp.ma1 -o tmp.ma2 tmp1.html
# Add MIME headers to an image attachment.
makemime -c "image/gif" -a "Content-Disposition: attachment" \
-o tmp2.gif attachment.gif
# Create the final multipart/mixed collection
makemime -m "multipart/mixed" -a "Mime-Version: 1.0" \
-o tmp.mm1 tmp.ma2
makemime -j tmp.mm1 -o output.msg tmp2.gif
output.msg now contains the complete MIME collection. Just add the Subject:, From:, and To: headers (can also be done by additional -a options, of course), and send it on its way.
Это то, о чем вы просите -, и это можно сделать. Использование такого инструмента, как makemime
, делает процесс достаточно безопасным.
Тем не менее, вам следует прочитать статью Sendgrid о «Как вставлять изображения в ваши электронные письма :Факты» . Из-за плохой обработки во многих клиентах я обычно просто ссылаюсь на изображение на веб-сервере. Это самый простой метод, и хотя он часто требует от пользователя «щелкнуть для просмотра», он, по-видимому, дает наиболее согласованные результаты для клиентов.
Другой вариант — встроенное встраивание логотипа в исходный код HTML.
или
Добавьте данные файла изображения в кодировке base64 сразу после base64,
, и все готово. Но опять же многим клиентам это не понравится.
Вы можете закодировать файл онлайн с помощью base64encode.org . Я настоятельно рекомендую сначала сжать изображение, используя что-то вроде TinyPNG
$ cat -f tst.awk
BEGIN {
header = "id" FS "target_id"
}
FNR == 1 {
f = FILENAME
sub(/\.gtf/,"",f)
header = header FS f
}
{
row[$2] = (FNR==NR ? $0 : row[$2] FS $3)
}
END {
print header
for (x in row) print row[x]
}
Использование:
$ awk -f tst.awk *.gtf
id target_id TUSCC120A TUSCC36 TUSCC89B
transcript MSTRG.6968.1 0.000000 0.000000 3.000000
transcript MSTRG.6975.2 0.000000 4.000000 2.213000
transcript MSTRG.6968.2 1.000000 1.342000 4.342000
transcript ENST00000446 3.000000 3.456000 0.000000
transcript ENST00000432 0.000000 5.000000 2.000000