Измените свой туннель для удаленного прослушивания на localhost: 8080
вместо *: 80
.
Установите Apache
на mydomain
и настройте обратный прокси с 80 на localhost: 8080 с помощью директив ProxyPass
и ProxyPassReverse
.
Скажите apache добавить адрес клиента в качестве стандартных HTTP-заголовков X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-Port, используя RequestHeader append
директиву
Попробуйте следующую команду:
cat bodymail.txt | mailx -s "Sending mail with Mailx" abc@mail.com
Я столкнулся с этой проблемой. Подсказка, которую я получил для решения, была на странице руководства:
Mailx ожидает, что вводимый текст будет в формате Unix со строками, разделенными только символами новой строки (^J, \n ). Текстовые файлы, отличные от -Unix, в которых используются символы возврата каретки (^M, \r ), будут рассматриваться как двоичные данные; чтобы отправлять такие файлы как текст, удалите эти символы e. грамм. к тр -д '\015'
Решение, которое они показывают с помощью tr, является лишь частичным решением. Если в файле есть другие управляющие символы, они приведут к тому, что mailx обработает данные как двоичные и затем присоединит их вместо того, чтобы использовать в качестве тела. Следующее удалит все специальные символы и поместит содержимое файла в тело сообщения:
tr -cd "[:print:]\n" < SourceFile | mailx -s "Test Subject" myemail@contoso.com
См. здесь обсуждение tr :tr удалить все специальные символы
Необходимо удалить не только символы \n
. Это также могут быть символы ASCII выше 128 (, такие как символы с диакритическими знаками, такие как á
, é
, í
, ñ
, ó
,ú
). Чтобы удалить их:
tr -d '[\015\200-\377]' < input_file > output_file
После очистки файла вы можете использовать его для отправки вот так:
mailx -s 'Error Log' abc@mail.com < output_file
На этот раз оно должно пройти как тело письма, а не как двоичное вложение.
-q file
Start the message with the contents of the specified file. May be given in send mode only.
В вашем случае это будет:
mailx -q bodymail.txt -s "Sending mail with Mailx" -r "abc@mail.com"