==
сравнивает ссылки на объекты в Java и не является исключением для объектов String
.
Для сравнения фактического содержимого объектов (в том числе String
) необходимо использовать equals
.
Если сравнение двух объектов String
с использованием ==
оказывается true
, это связано с тем, что объекты String
были интернированы, а виртуальная машина Java имеет несколько ссылки указывают на тот же экземпляр String
. Не следует ожидать сравнения одного объекта String
, содержащего то же содержимое, что и другой объект String
, используя ==
для оценки как true
.
ваши заголовки должны быть в виде массива:
$headers = array("Content-Type: text/html; charset=UTF-8", "From: $from ");
Кроме того, нет смысла устанавливать содержимое как файл php, содержимое внутри будет читаться как html, код php не будет выполняться;