Дополню, что большая часть распространенных лицензий на открытый код не запрещают создание производного коммерческого кода, но некоторые накладывают дополнительные оаграничения (например по GPL исходный код должен публиковаться, по LGPL код может быть закрытым, но должен собираться так, чтобы LGPL библиотеки можно было заменить и т.д.).
Они не отбрасывается, они оставляются в системном буфере и могут быть получены при последующих обращениях к recv(). Ваш код просто не сработает, он будет ждать пока другой конец не закроет сокет и не сможет отправить клиенту ответ, например.
Проще всего админом сбросить пароль пользователю, после чего на стороне пользователя валидировать телефон, тогда никаких анкет и обращений в поддержку не требуется
Отправьте сообщение на любой сервер и посмотрите заголовки полученного письма, обычно по заголовкам Received и/или Received-SPF видно и PTR и HELO, например
Сам факт совпадения PTR и HELO обычно практически не влияет. Сильно влияет наличие в HELO правильного имени, сильно влияет наличие SPF по этому имени (у вас он совпадает с SPF по самому домену) и очень сильно влияет наличие правильного PTR, который разрешается обратно в тот же IP (FCrDNS)
Да, во-первых получатель видит не адрес отправителя из SMTP-конверта, а адрес отправителя из поля From, и они могут быть разные. Ответ уходит на адрес из From, а сообщения о недоставке на адрес SMTP-конверта.
Во-вторых, можно установить заголовок Reply-To, тогда ответы будут уходить на адрес из этого заголовка, он может быть отличным от обоих предыдущих.
Вячеслав Грачунов, в целом нет, т.к. проси не видит что происходит внутри https, можно установить маленький таймаут на CONNECTION_SHORT/CONNECTION_LONG, см timeouts
В SPF нет ограничения на количество элементов в политике SPF, есть ограничение на количество DNS запросов, которые нужно сделать для применения политики.
a: требует одно разрешение имени
mx: требует одно разрешение для получения mx + по одному разрешению для каждого сервера, на который указывает mx
ip4: требует 0 разрешений (т.к. это уже IP адрес). Поэтому ограничений на количество элементов ip4: в SPF нет (кроме технологических ограничений DNS).
вот тут есть достаточно подробно: https://habr.com/en/company/mailru/blog/338700/
там раздел "Заблуждение: чем больше всего (a, mx, ptr, include) я включу в SPF-запись, тем лучше, потому что меньше вероятность ошибиться"
Единственное ограничение - это размер пакета с ответом DNS, если он будет превышать 512 байт, то будет переключаться на TCP и с этим бывают проблемы, ограничьте размер одной записи ~300 символами.
для разрешения этой политики требуется 3 запроса (один на основную политику и по одному на каждый include), записи типа ip4 не требуют каких-либо разрешений имен.
This is an adress of array[]: 0x7ffee5f78b6d
This is an adress of &array[]: 0x7ffee5f78b6d
это ровно то, про что написано в книге, &array и array это одно и тоже. В основном имя массива ведет себя как const char *, а это одно из немногих отличий (к const char * нельзя применить &, а к имени массива можно, но на практике такая конструкция не используется)
tomato00, да, через include можно включать любую синтаксически корректную SPF. Но при этом надо учитывать, что каждый include требует дополнительного DNS-запроса, а на разрешение SPF-политики установлено общее ограничение в 10 запросов, поэтому злоупотреблять инклюдами не стоит.