Ja bym zrobił jedną klasę wszystko sklecająca, a dla formatów maili klasę abstrakcyjną i te klasę by sobie dziedziczył HtmlFormat, TextFormat, itd.
Wyglądało to by mniej więcej tak:
<?php
{
public function setBody()
{
}
// itd.
}
?>
Klasa abstrakcyjna dla formaterów i przykładowe formatery:
<?php
abstract class Formatter
{
abstract public function compose();
// tutaj jeszcze mozesz wsadzic co tam ci sie przyda
}
class HtmlFormatter extends Formatter
{
// tutaj metody przetwarzajace charakterystyczne dla maila w Htmlu
}
?>
No i przykład wykorzystania:
<?php
$mail->setFrom( 'example@domain.com' );
$mail->setTo( 'example-to@domain.com' );
$mail->setFormatter( new HtmlFormatter() );
$mail->setBody( 'tutaj cialo maila' );
$mail->send(); //wysylanie
?>
Myślę, że pomogłem. Podany kod traktuj raczej jako pseudo-kod. Jeżeli chcesz zaczerpnąć inspiracji to popatrz sobie w komponent
Mail z
eZ Components.
Pozdrawiam, Marcin.