PDA

Zobacz pełną wersję : Wysyłka maila we własnym komponencie



kubel-junior
11-06-2013, 14:31
Witam, mam komponent w którym jest formularz kontaktowy. Wszystko się ładnie wysyłało do tej pory ale chciałbym dodać możliwość załącznienia pliku do formularza kontaktowego.

W widoku dodałem odpowiednią linijkę:


<label for="zalacz_cv" id="zalacz_cv">Załącz swoje CV</label>
<input type="file" name="zalacz_cv" size="20">


Kontrolel do wysyłki korzysta z funkcji JUtility::sendMail .

JUtility::sendMail($mailfrom, $fromname, $mailto, $subject, $message, $mode=1, $cc=null, $bcc=null, $attachment=null,$replyto,$replytoname);

Mam do Was pytanie, jak zrobić aby do maila dołączał się plik bo nie za bardzo mam pomysł. W dokumentacji Joomli nie jest to wyjaśnione.

z góry dzięki za wskazówki

- - - Updated - - -

dla przykładu pod zmienną attachment dałem coś takiego:


$attachment = JPATH_SITE.DS.'images/joomla_black.gif';

ale w mailu nadal się nic nie dołacza

KES
11-06-2013, 15:20
Nie używaj wysyłania metody która jest oznaczona jako przestarzała w 2.5.x a w 3.x już jej nie ma.
Użyj klasy JMail lub pobierz globalną instancję JMail, JFactory::getMailer();
W klasie JMail masz metodę 'addAttachment' - poczytaj o niej a uda ci się dołączyć plik do maila :)

kubel-junior
13-06-2013, 09:57
Nie używaj wysyłania metody która jest oznaczona jako przestarzała w 2.5.x a w 3.x już jej nie ma.
Użyj klasy JMail lub pobierz globalną instancję JMail, JFactory::getMailer();
W klasie JMail masz metodę 'addAttachment' - poczytaj o niej a uda ci się dołączyć plik do maila :)

Wielkie dzięki, już wszystko działa. Jakby ktoś chciał zobaczyć to poniżej daje kod, może sie przyda:



jimport('joomla.filesystem.file');
$max = ini_get('upload_max_filesize');
$module_dir = 'cv\\';
$file_type = 'application/pdf';
$file_type1 = 'application/PDF';

$file = JRequest::getVar('zalacz_cv', null, 'files', 'array');

print_r($file);

if(isset($file)){

$filename = JFile::makeSafe($file['name']);


if($file['size'] > $max) $msg = JText::_('ONLY_FILES_UNDER').' '.$max;


$src = $file['tmp_name'];
$dest = $module_dir . DS . $filename;

//First check if the file has the right extension, we need jpg only
if ($file['type'] == $file_type || $file['type'] == $file_type1 || $file_type == '*') {
if ( JFile::upload($src, $dest) ) {
$msg = JText::_('FILE_SAVE_AS').' '.$dest;
} else {
$msg = JText::_('ERROR_IN_UPLOAD');
}
} else {
$msg = JText::_('FILE_TYPE_INVALID');
}

$msg = "<script>alert('". $msg ."');</script>";
}

$attachment = JPATH_SITE.DS.'katalog_tymczasowy'.DS.''.$filename ;


$wiadomosc =& JFactory::getMailer();

$wiadomosc ->addRecipient($mailto);
$wiadomosc ->setSubject( $subject);
$wiadomosc ->setSender($replyto);
$wiadomosc ->addReplyTo($replyto);
$wiadomosc ->setBody( $message);
$wiadomosc ->addAttachment($attachment);

$wiadomosc ->Send();

// usuwanie pliku
unlink($attachment);