[ verodostojan @ 22.01.2013. 12:06 ] @
Napravio sam formu za login i registraciju u CodeIgniter framework-u. Prilikom registracije novog korisnika potrebno je poslati mail za verifikaciju i tu nastaje problem.

Funkcija u controlleru:
Code:
 public function signup_validation()
        {
            $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[temp_users.email]');
            $this->form_validation->set_rules('password', 'Password', 'required|trim');
            $this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim|matches[password]');
            
            $this->form_validation->set_message('is_unique', 'This email adress already exists!');
            
            if ($this->form_validation->run())
            {
               $this->load->model('MembersModel');
               $key = md5(uniqid());
               
               $this->email->from('[email protected]', 'Vladimir');
               $this->email->to($this->input->post('email'));
               $this->email->subject('Confirm your account');
               
               $message = "Thank you for sign up!";
               $message .= "< href='".base_url()." index.php/main/register_user/$key'>Click here </a> to confirm your registration";
               
               $this->email->message($message);
               
               if ($this->MembersModel->add_temp_user($key))
               {
                   if ($this->email->send())
                {
                   echo "The email has been sent to you";
                }
 else {
     echo "The email has not been sent to you";
 }
               }
               
               else{ 
                   echo "Could not add user into database.";
               }
            }
            
 else {
                $this->load->view('signup');
 }

}


Funkcija u modelu:
Code:
 public function add_temp_user($key)
    {
        $data = array('email' => $this->input->post('email'), 
            'password' => md5($this->input->post('password')), 'key' => $key);
        
        $this->db->insert('temp_users', $data);
        
        $query = $this->db->get('temp_users');
        
        if ($query)
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
        
    }


Prilikom izvrsavanja skripra, uredno mi napise "The email has been sent to you" ali mail ne stize.
Da li je potrebno podesiti SMTP u php.ini? Kada ukljucim Mercury u Xampp-u, opet ista prica.

Pomoc!!!

[ verodostojan @ 22.01.2013. 15:56 ] @
Da pojasnim pitanje posto sam ga izgleda malo vise zakomplikovao.

Kako da podesim Xampp da salje mailove (preko localhost-a)?
[ Nemke_BG @ 22.01.2013. 18:00 ] @
za to ces morati da instaliras i podesis mail server u lokalu
[ plus_minus @ 22.01.2013. 18:57 ] @
Verodostojan, ako želiš samo da testiraš to što radiš sa sve odlaznim mejlom u lokalu, pa tek kasnije da puštaš (uploaduješ skriptu) ukoliko radi korektno, ne treba ti setup mail servera već ti treba Test Mail Server Tool (ili slično tome).
A ako želiš da tvoja aplikacija ili to što radiš napušta lokalnu mrežu, to jest, da šibaš mejlove van lokala na neki mejl, onda ti treba mail server. I još što šta pre toga konfigurisano.
Ukoliko je drugo u pitanju, da bi podesio mail server u lokalu, ukoliko si npr. preko telekoma, vidi prvo sa njima, dakle, sa provajderom, šta gde i kako. Ostalo ćeš, lako.

[Ovu poruku je menjao plus_minus dana 23.01.2013. u 01:55 GMT+1]
[ verodostojan @ 23.01.2013. 10:24 ] @
Hvala na odgovorima.

Poslao sam mail Telekomu pa cu videti sta ce mi odgovoriti.
Hvala u svakom slucaju
[ kelja @ 23.01.2013. 10:29 ] @
Citat:
Da li je potrebno podesiti SMTP u php.ini?




Mozes za testiranje google smtp da koristis, da se ne bi zezao sa instalacijom mail servera:
http://trace.adityalesmana.com...-sending-email-via-gmail-smtp/

Radi, provereno. :)

A i velika je verovatnoca da ce ti slanje mejlova raditi, ako ne dobijas nikakvu gresku na lokalhostu, i kad uploadujes skript na server...
[ verodostojan @ 23.01.2013. 12:36 ] @
Citat:
Radi, provereno. :)

A i velika je verovatnoca da ce ti slanje mejlova raditi, ako ne dobijas nikakvu gresku na lokalhostu, i kad uploadujes skript na server...


Ne radi na zalost. Fizicki ubacije novog korisnika u bazu i nakon submitovanja pise "Your email was sent, dammit" ali fizicki ne salje mailove.
[ kelja @ 23.01.2013. 12:41 ] @
http://ellislab.com/forums/viewthread/132443/

Ne znam, kod mene radi? Mozda ti nesto odavde pomogne...
[ verodostojan @ 23.01.2013. 13:18 ] @
Code:
public function signup_validation()
        {
            $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[temp_users.email]');
            $this->form_validation->set_rules('password', 'Password', 'required|trim');
            $this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim|matches[password]');
            
            $this->form_validation->set_message('is_unique', 'This email adress already exists!');
            
            if ($this->form_validation->run())
            {
               $this->load->model('MembersModel');
               $key = md5(uniqid());
               
               if ($this->MembersModel->add_temp_user($key))
               {
                        
               $config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => '[email protected]',
'smtp_pass' => 'xxxxxxxxx',
'mailtype'  => 'html', 
'charset'   => 'iso-8859-1'

);

$this->load->library('email', $config);
$this->email->set_newline("\r\n"); /* for some reason it is needed */

$this->email->from('[email protected]', 'Aditya Lesmana Test');
$this->email->to($this->input->post('email'));
$this->email->subject('This is an email test');
$message = "Thank you for sign up!";
$message .= "< href='".base_url()." index.php/main/register_user/$key'>Click here </a> to confirm your registration";
               
               $this->email->message($message);

if($this->email->send())
{
echo 'Your email was sent, dammit';
}
else
{
    echo show_error($this->email->print_debugger());
}

}
     
 else{ 
                   echo "Could not add user into database.";
               }
            }
            
 else {
                $this->load->view('signup');
 }

}


Ovako ispise poruku "Your email was sent, dammit" ali ne posalje mail.

Elegantnije je bilo da sam napravio novu f-ju email_send() i u nju ubacio sav ovaj kod, nesto tipa:
Code:
if ($this->MembersModel->add_temp_user($key))
   {
       $this->main->email_send();
   }

ali tada javlja silne neke greske.

Kelja, ovo sto sam si mi napisao definitivno ima smisla, stvarno mi nije jasno zasto nece da radi, je**vam se celo jutro. Ovo su neke nevidljive sile...
[ kelja @ 23.01.2013. 13:55 ] @
$this->email->from('[email protected]', 'Aditya Lesmana Test');

Probaj ovde da stavis pravu adresu, svoju... ne pada mi nista pametnije na pamet. :)

Citat:
Thanks it worked for me!!......and with a little tweak….i figured out how to use custom FROM email mail address rather than your primary gmail address,which you just used to get Authorize with gmail…

Any other FROM email address should be Added into your gmail account,which can be done by going to google account settings and add a new account,just add your account in it…and use that VERIFIED email address…in your script!!....Cheers!!... smile
[ verodostojan @ 23.01.2013. 14:53 ] @
Probao sam odavno i jos deset drugih stvari pored toga...
[ verodostojan @ 23.01.2013. 20:56 ] @
@kelja

Jesi li menjao php.ini?
[ kelja @ 23.01.2013. 21:22 ] @
E, nisam... koristim wamp... nista ja tu nisam dir'o, bar mislim, ali ko ce znati... :D
[ Predrag Supurovic @ 24.01.2013. 13:16 ] @
Proveri šta se koristi za slanje imejla. Ako se koristi PHP-ova funkciaj za slanje ona ne vraća poruku o grešci pa i ne može na nju da se reaguje. Ako već nije, izmeni to da seimejl šalje SMTP protokolom.