Сначала необходимо проверить кодировку кодировки в заголовках писем.
После того, как вы это сделали, вы выбрали 1 из 2 методов, измените кодировку в HTML или измените кодировку (где это возможно) на кодировку, которую вы уже используете (вероятно, UTF-8)
Если вы динамически меняете кодировку HTML в заголовке, то вашей самой большой проблемой является то, что пользователям нужно будет указать правильную кодировку в настройках своего браузера, например, мой установлен на UTF-8, однако мои электронные письма соответствуют ISO-8859-1, поэтому, если бы я использовал этот метод каждый раз, когда я смотрю на сайт, мне нужно было бы сменить кодировку своего браузера, но у моего друга ISO-8859-1 в качестве его обычной кодировки, поэтому у него не было бы проблем.
Если вы кодируете символы в UTF-8 (например, utf8_encode в php), вам нужно убедиться, что контент еще не находится в UTF-8, в противном случае вы можете обнаружить, что функция кодирования создает другие недопустимые символы.
Способ, которым я справляюсь, заключается в том, чтобы в основном декодировать заголовок mime письма, а затем использовать preg_match в PHP для определения используемой кодировки, оттуда я запускаю кодировку в UTF-8 или нет.
Это очень сложное занятие, иногда занимающееся обработкой почты и различных кодировок в зависимости от отправителя электронной почты, вы заранее не знаете, какая кодировка будет использоваться, поэтому вам нужно по-настоящему понять различные кодировки,как они лучше всего хранятся, если их хранить, и как они лучше всего отображаются, вам нужно перевести это на ваше приложение и целевой рынок.
Удачи в вашем приложении