PDA

Zobacz pełną wersję : Joomla 2.5 Wysyłanie maila w artykule



swiru12
16-07-2014, 21:50
Cześć wszystkim. Mam pewien problem z joomlą, moja wersja to 2.5. Tworzę aktualnie pewien dodatek - formularz, ale ze względu na to że jest on dość złożony, kilku etapowy i chciałem pozostawić sobie jak największą kontrolę nad tym co dzieje się w skrypcie to postanowiłem nie korzystać z żadnego gotowego pluginu i stworzyć coś własnego. Zainstalowałem sobie plugin DirectPHP i stworzyłem całość w artykule (może kogoś to zaszokuje ale tak było mi wygodnie). Potrzebuje teraz dodać do całości wysyłanie wiadomości email. Niestety funkcja mail() nie chce mi działać, nie dostaje żadnego komunikatu ale też moja poczta nie dochodzi, po prostu się gdzieś gubi. Prawdopodobnie znam przyczynę, korzystam z serwera gdzie wymagana jest autoryzacja SMTP, STARTTLS i port do wysyłania poczty 587. Czy jest jakaś możliwość wplecenia takiego wysyłania wiadomości email w artykuł ? Czy to że moje wiadomości się gubią to wina właśnie tej autoryzacji SMTP ?

Jeżeli da się to zrobić to prosiłbym o radę, a najlepiej przykład ( nigdy nie korzystałem z funkcji wysyłających wiadomość email z autoryzacją SMTP) http://forum.joomla.org/images/smilies/icon_smile.gif

Dzięki http://forum.joomla.org/images/smilies/icon_smile.gif

Jola
16-07-2014, 23:43
Zamiast kodu w artykule - napisz moduł (wykorzystując to, co już napisałeś), osadź w artykule.
W module możesz bez problemu użyć wbudowanuch w Joomla funkcji do wysyłania maila.

swiru12
17-07-2014, 09:48
Ja nie wiem jak użyć tej funkcji joomli do wysyłania maili, być może da się to zrobić w artykule ale chodzi właśnie o to że nie umiem użyć tej funkcji. Ogólnie kod php mi działa normalnie w artykułach więc nie powinno być problemu.

Nie umiem tego przerzucić do modułu dlatego chciałbym to już skończyć w artykule bo bardzo goni mnie czas, a innego dnia się naucze tworzenia modułów.

- - - Updated - - -

Właśnie postawiłem nową joomle na innym serwerze gdzie nie potrzebuje autoryzacji smtp itp do wysyłania maili i normalny mail() działa w artykule.

swiru12
17-07-2014, 15:03
Jak by ktoś kiedyś potrzebował to rozwiązanie jest tu - http://docs.joomla.org/Sending_email_from_extensions

Gotowy przykładowy kod wygląda tak:



$mailer = JFactory::getMailer();

$config = JFactory::getConfig();
$sender = array(
$config->getValue( 'config.mailfrom' ),
$config->getValue( 'config.fromname' ) );
$mailer->isHTML(true); // Dzięki temu możesz używać html'a w treści wiadomości
$mailer->setSender($sender);
$user = JFactory::getUser();
$recipient = "Adres email osoby do której ma trafić wiadomość";

$mailer->addRecipient($recipient);

$body = "Treść wiadomości";
$mailer->setSubject('Tytuł wiadomości');
$mailer->setBody($body);


$send = $mailer->Send();
if ( $send !== true ) {
echo 'Error sending email: ' . $send->__toString();
} else { echo "Wysłane."; }