, если у меня указано мое доменное имя непосредственно на IP-адрес моего почтового сервера, придется ли мне добавлять записи MX в свой DNS?
запись MX сообщает Интернету, какие серверы отвечают за обработку входящей почты. поэтому без записи MX электронное письмо, отправленное в ваш домен, вернется в норму, поскольку удаленный почтовый сервер не будет знать, куда его отправить. если вы хотите получать почту, вам нужна запись MX. (вы также можете реализовать SPF и ключи домена для проверки почтового сервера вашего домена). просто погуглите и прочтите об этом.
почтовый сервер должен работать с почтой Apple, встроенной в мой компьютер, который должен соединяться с IMAP через порт SMTP-сервера.
IMAP и SMTP в данном случае относятся к вашему почтовому клиенту. IMAP используется клиентом для получения почты с сервера, а SMTP в этом случае используется клиентом для отправки почты. так что не путайте это ни с сервисом IMAP на сервере, ни с SMTP, используемым почтовым сервером для пересылки электронной почты, на основе записей MX (и SPF / DKIM для проверки домена.
короче, вам нужно погуглить эти вещи и поймите разницу, прежде чем развертывать свой почтовый сервер.
То, что вам нужно, это отрицательный -взгляд -позади , который не поддерживается ни sed
, ни awk
. Я рекомендую использовать perl
, например.:
file=Data.txt
export Initial="# Start"
export orig="abc"
export new="123"
export Final="5"
perl -pe '
$flag=1 if /$ENV{Initial}/;
s,(?<!https://)$ENV{orig},$ENV{new},g if $flag;
$flag=0 if $. == $ENV{Final};
' $file
Вы можете временно изменить все экземпляры, начинающиеся с https://
, на что-то другое, не содержащее abc
, и вернуть их обратно, когда закончите.
sed -e 's_https://abc_protected_g;/# Start/,$s_abc_123_g;s_protected_https://abc_'
Вам нужно будет выбрать некоторое значение для временной строки, которое, как вы можете быть уверены, не появится в вашем вводе (и не содержит никаких специальных символов, которые могут помешать sed
или заключению в кавычки оболочки ). Я использовал protected
, но желательно что-то более характерное.
Если вы не можете быть уверены, что ваша временная строка не появится во входных данных, более длинной, но более безопасной альтернативой будет использование двух замещающих строк:
sed -e 's/X/Xv/g;s_https://abc_Xu_g;/^# Start/,$s/abc/123/g;s_Xu_https://abc_g;s/Xv/X/g'
Требования к этим двум временным строкам::
X
, но он может быть длиннее/читабельнее)orig
, new
, Initial
или Final
sed