Strona 1 z 3

Wysyłanie maili

Napisane: niedziela, 15 grudnia 2013, 11:47
przez solark
Witam serdecznie
Mam następujący problem
Chciałem dać możliwość wysyłania maili ze swojej strony
Poznałem artykuł z bloga Pana Arkadiusz dotyczący mailingu ale jak powiązać ten skrypt z polem tekstowym (czy istnieje jakieś większe pole tekstowe nie jednolinijkowe?),
oraz z buttonem wyślij?
Chciałem też dodać możliwość dołączania załączników. Widziałem że jest lekcja z php dotycząca załączania plików ale do wysyłania na swój komputer.
A jakzrobić żeby można było wysłać ten załącznik wraz z treścią maila na inny serwer.
W ogóle jak przerobić ten kod z bloga?
Dziękuję w ogóle za zawsze miłą i szybką pomoc
Dodaję że na podstawie kursów Pana Arkadiusza można zbudować profesjonalną stronkę samemu i później dowolnie ją modyfikować
pozdrawiam

Re: Wysyłanie maili

Napisane: niedziela, 15 grudnia 2013, 12:26
przez Morfidon
Textarea to pole tekstowe wieloliniowe, możesz do niego pobrać więcej niż jednego maila każąc np. oddzielać je średnikiem po czym użyć np. funkcji explode (http://www.php.net/explode) na przesłanych danych aby połączyć je w tablice.

Załączniki dodajesz podobnie jak w lekcji w której dołączasz pliki na stronę z tym, że korzystasz z funkcji AddAttachment: http://phpmailer.worxware.com/?pg=tutorial#3

Pozdrawiam :)

Re: Wysyłanie maili

Napisane: niedziela, 15 grudnia 2013, 12:53
przez solark
Dziękuję za szybką odpowiedź

Nie wiem czy dobrze zrozumiałem
Chciałem aby treść maila była wielolinijkowa ale jednego maila powiedzmy jakiegoś dłuższego
Ale jak powiązać tekst wpisany w tym polu tekstowym ze skryptem z bloga?

Re: Wysyłanie maili

Napisane: niedziela, 15 grudnia 2013, 13:16
przez Morfidon
Textarea będzie również odpowiedni. Po prostu zabierz zawartość pola tekstowego z tablicy $_GET lub $_POST i przypisz ją do zmiennej, którą prześlesz do funkcji gdzie wysyłasz wiadomość...

Re: Wysyłanie maili

Napisane: niedziela, 15 grudnia 2013, 13:25
przez solark
Witam ponownie
Jeszcze korzystając z okazji chciałbym się zapytać (bo nie przerobiłem jeszcze wszystkich lekcji z php) czy stronę dotyczącą kontaktu tworzę w nowym pliku html i css czy muszę ją tworzyć w pliku php i nazywać ją index.php Bo do tej pory korzystałem tylko z html i css i nie wiem jak to połączyć
pozdrawiam

Re: Wysyłanie maili

Napisane: niedziela, 15 grudnia 2013, 14:28
przez Morfidon
Powinno się oddzielić kod html od php z pomocą tzw. szablonów jak np. Smarty.

Bez tego można napisać własny skrypt szablonowy lub też niektórzy mieszają kod php z html lub też niektórzy piszą tylko w php a kod html wypisują przy pomocy "echo".

Re: Wysyłanie maili

Napisane: niedziela, 15 grudnia 2013, 15:03
przez solark
Witam
Nie wiem czy dobrze zrozumiałem ale jeżeli można mieszać kod php z html to by sporo ułatwiło tylko jak to zrobić?
Czy po prostu w sekcji body pliku html mogę umieścić znacznik <?php ?> i tam cały kod?
Czy mogę formularz umieścić na pliku html a tylko w znaczniku form dać action='index.php i cały kod dać do index php?
Czy ten kod jest dobry przy założeniu możliwości wysyłania maili wraz z załącznikiem?:

Code: Zaznacz cały

<?php
/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

//html, meta tagi etc. 
//NASZ SKRYPT 
if(isset($_FILES['plik']))
   {       
     switch($_FILES['plik']['error'])
      {
       case 0:
         if ($_FILES['plik']['type'] == "image/jpeg" || $_FILES['plik']['type'] == "image/gif" || $_FILES['plik']['type'] == "image/png")
         {
                AddAttachment($path); 
            echo "plik zosta‚ pomylnie zuploadowany";
         }
         else  
            echo "niedozwolone rozszerzenie piku";
         break;
       case 1:
        echo "Za duy plik (php.ini)";
         break;
       case 2:
        echo "Za duy plik";
        break;
       case 3:
        echo "Niepe‚ny plik";
        break;
       case 4:
        echo "Nie wybrano pliku";
        break;                   
       default
        echo " krego nie przewidziano prosimy o kontakt";                        
    }
  }
require_once("phpmailer/class.phpmailer.php"); 
$mail = new PHPMailer(); 
$mail->PluginDir = "phpmailer/"; 
$mail->Mailer = "smtp"; 
$mail->Host = "ssl://smtp.gmail.com"; 
$mail->Port = 465;    
$mail->SMTPKeepAlive = true;                      
$mail->SMTPAuth = true; 
$mail->Username = "nasz_pelny_login"; 
$mail->Password = "haslo";    
$mail->SetLanguage("pl", "phpmailer/language/");              
$mail->CharSet = "UTF-8";     
$mail->ContentType = "text/html";                     
$mail->From = "mojnick@gmail.com";    
$mail->FromName = "Arek"; 
$mail->Subject = "Tytuł wiadomości"; 
$mail->Body = 'To jest nowa testowa treść, z prawidłowo interpretowanymi polskimi znaczkami, a to jest <b>pogrubione</b>, a to jest <a href="http://">link</a>';  
$mail->AddAddress("gdzietowyslac@domena.pl"); 
if($mail->Send()) 
   echo "E-mail został wysłany <br>"; 
else 
   echo "E-mail nie mógł zostać wysłany, przyczyna :".$mail->ErrorInfo; 
$mail->SmtpClose();                                       
//koniec body html etc.
?>
Oczywiście w pliku html tworzę odpowiedni formularz i tak jak Pan pisał obsługuję go przy pomocy POST?

Re: Wysyłanie maili

Napisane: niedziela, 15 grudnia 2013, 16:12
przez solark
Jeszcze chciałem się coś zapytać
W jaki sposób przesłać tą zmienną z POST do funkcji gdzie wysyłam maila?
Bo rozumiem że funkcja POST obsługująca formularz znajduje się w innym pliku php?

Re: Wysyłanie maili

Napisane: niedziela, 15 grudnia 2013, 17:41
przez solark
Dobrze proszę popatrzeć na to:
Jeden plik php tworzę z takim kodem:

Code: Zaznacz cały

<?php
require_once("Post_1.php");
if(isset($_FILES['plik']))
   {       
     switch($_FILES['plik']['error'])
      {
       case 0:
         if ($_FILES['plik']['type'] == "image/jpeg" || $_FILES['plik']['type'] == "image/gif" || $_FILES['plik']['type'] == "image/png")
         {
                AddAttachment($path); 
            echo "plik zosta‚ pomylnie zuploadowany";
         }
         else  
            echo "niedozwolone rozszerzenie piku";
         break;
       case 1:
        echo "Za duy plik (php.ini)";
         break;
       case 2:
        echo "Za duy plik";
        break;
       case 3:
        echo "Niepe‚ny plik";
        break;
       case 4:
        echo "Nie wybrano pliku";
        break;                   
       default;
        echo "krego nie przewidziano prosimy o kontakt";                        
    }
  }
require_once("phpmailer/class.phpmailer.php"); 
$mail = new PHPMailer(); 
$mail->PluginDir = "phpmailer/"; 
$mail->Mailer = "smtp"; 
$mail->Host = "ssl://smtp.gmail.com"; 
$mail->Port = 465;    
$mail->SMTPKeepAlive = true;                      
$mail->SMTPAuth = true; 
$mail->Username = "nasz_pelny_login"; 
$mail->Password = "haslo";    
$mail->SetLanguage("pl", "phpmailer/language/");              
$mail->CharSet = "UTF-8";     
$mail->ContentType = "text/html";                     
$mail->From = "mojnick@gmail.com";    
$mail->FromName = "Arek"; 
$mail->Subject = "Tytuł wiadomości"; 
$mail->Body = $maildowyslania;  
$mail->AddAddress("gdzietowyslac@domena.pl"); 
if($mail->Send()) 
   echo "E-mail został wysłany <br>"; 
else 
   echo "E-mail nie mógł zostać wysłany, przyczyna :".$mail->ErrorInfo; 
$mail->SmtpClose();                                       

?>

Natomiast drugi plik php tworzę z takim kodem:

Code: Zaznacz cały

<?php
require_once("kontakt.html");
 if (isset($_POST['login']) && isset($_POST['haslo']))
            {
                if (!empty($_POST['trescmaila']))
                    {
                    $maildowyslania = filter_var($_POST['trescmaila'], FILTER_SANITIZE_STRING);
                    
                    
                    }
                    else
                        echo "Nie wpisałeś treści maila <a href='kontakt.html'>tutaj</a>";
                    
             }   
                else
                    echo "Nie wpisałeś treści maila <a href='kontakt.html'>tutaj</a>";
                          
 ?>

Cały formularz natomiast umieszczam w pliku html
Nie wiem czy to require na początku z htmlem dobrze umieściłem
Proszę pisać w razie jakiś uwag
pozdrawiam

Re: Wysyłanie maili

Napisane: niedziela, 15 grudnia 2013, 20:27
przez solark
Witam ponownie
Nie da się chyba obsłużyć kodu html za pomocą pliku php używając require
Trzeba chyba ten szablon smarty
Mógłby mi Pan doradzić jak go użyć żeby to działało
Czy muszę jednak dokupić tek kurs Smarty?