Eu acredito que isso é o que você pretendia fazer, é um pouco estranho:
$fn = escape($mt->from_name);
$time = escape(date("F d, Y - h:i a", strtotime($mt->st_time)));
$stc = nl2br(escape($mt->st_content));
//START EMAIL
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
TEXT
. Input::get('rec_message') . <<<TEXT2
<br><br>
<strong>Conversation:</strong><br><br>
$fn<br>
$time<br>
$stc<br>
TEXT2
);
O início de um heredoc deve ser a última coisa em uma linha, então depois disso você desce e vai imediatamente para o bloco de texto. O fim do heredoc deve ser a única coisa na linha, então para concatená-la você tem que colocar uma linha antes de poder usar o operador (
.
). Você também não precisa usar aspas ou acrescentar operadores quando estiver dentro de um heredoc. Na verdade, é tão pouco intuitivo que até o marcador de sintaxe do StackOverflow erra, o primeiro
<<<TEXT
funciona bem quando eu corri isso:$mt = new stdClass();
function escape($v){return $v;}
class User{static function sendNewTicket($a, $b, $c){echo $c;}}
class Input{static function get($a){return 'Got something';}}
$send_to = '';
$mt->from_name = 'Kitty';
$mt->st_time = '5th November';
$mt->st_content = <<<CONTENT
Dear Judy,
Lorem Dipsum and all that jazz.
Toodles,
Kitty.
CONTENT;
$fn = escape($mt->from_name);
$time = escape(date("F d, Y - h:i a", strtotime($mt->st_time)));
$stc = nl2br(escape($mt->st_content));
//START EMAIL
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
TEXT
. Input::get('rec_message') . <<<TEXT2
<br><br>
<strong>Conversation:</strong><br><br>
$fn<br>
$time<br>
$stc<br>
TEXT2
);
Produziu:
Hello -<br><br>Got something<br><br>
<strong>Conversation:</strong><br><br>
Kitty<br>
November 05, 2014 - 12:00 am<br>
Dear Judy,<br />
<br />
Lorem Dipsum and all that jazz.<br />
<br />
Toodles,<br />
Kitty.<br>
Embora eu tenha certeza de que ficará melhor com seus dados.
Editar:E como Blizz muito corretamente aponta abaixo, se você salvar o
rec_message
em uma variável, você pode evitar a concatenação completamente:$recMessage = Input::get('rec_message');
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
$recMessage
<br><br>
<strong>Conversation:</strong><br><br>
$fn<br>
$time<br>
$stc<br>
TEXT
);
Editar 2 :Com as mensagens extras, você deve usar algo assim para simplificar o email:
$messages = '';
foreach($st_messages->results() as $mt)
{
$fn = escape($mt->from_name);
$time = escape(date("F d, Y - h:i a", strtotime($mt->st_time)));
$stc = nl2br(escape($mt->st_content));
$messages .= <<<MESSAGE
$fn<br>
$time<br>
$stc<br><br>
MESSAGE;
}
$recMessage = Input::get('rec_message');
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
$recMessage
<strong>Conversation:</strong><br><br>
$messages
Thanks,<br>
Support Team
TEXT
);
?>
Que com algum texto fictício básico produz:
Hello -<br><br>
Got something
<strong>Conversation:</strong><br><br>
Person<br>
November 11, 2014 - 12:00 am<br>
My message blah blah<br><br>
sdfasdf<br>
April 11, 2014 - 12:00 am<br>
My message asdfasdf blah blah<br><br>
Thanks,<br>
Support Team