Okay så jeg har stadig nogle problemer her. Jeg har et email script baseret på CI, og det burde altså virke. Kan ikke finde ud af hvad problemet er. Problemet er at scriptet staller. I kan lige få koden først:
Controller
- <?php
-
- class Email extends Controller
- {
-
- function index()
- {
- $this->load->view('newsletter_view');
- }
-
- function send()
- {
- $this->load->library('form_validation');
-
- //field name, error message, validation rules
- $this->form_validation->set_rules('name', 'Name', 'trim|required');
- $this->form_validation->set_rules('email', 'Email Address', 'trim|required|valid_email');
-
- if($this->form_validation->run() == FALSE)
- {
- $this->load->view('newsletter_view');
- }
- else
- {
- //Validation passed
- $name = $this->input->post('name');
- $email = $this->input->post('email');
-
- $config = array(
- 'protocol' => 'smtp',
- 'smtp_host' => 'ssl://smtp.googlemail.com',
- 'smtp_port' => 465,
- 'smtp_user' => 'mail@gmail.com',
- 'smtp_pass' => 'mailpw'
- );
-
- $this->load->library('email', $config);
-
- $this->email->set_newline('r\n');
-
- $this->email->from('mail@gmail.com', 'Dennis ');
- $this->email->to($email);
- $this->email->subject('TEST EMAIL SCRIPT');
- $this->email->message('Hellu, this is a test!');
-
- //Attachment
- $path = $this->config->item('server_root');
- $file = $path . "/fw/application/attachment/test.txt";
- if(!$this->email->attach($file))
- {
- echo 'Could not attach file'; die;
- }
- else
- {
- if($this->email->send())
- {
- echo 'Your email was sent.';
- }
- else
- {
- echo 'Shit happened';
- }
- }
- }
-
- }
-
- }
View burde ikke have noget at sige men sig hvis den skal postes.
Hvis jeg kører scriptet som det står der får jeg fejlen:
"Could not attach file."
hvilket tyder på det var attach delen som var forkert, men comment'er jeg alt det ud:
- //Attachment
- //$path = $this->config->item('server_root');
- //$file = $path . "/fw/application/attachment/test.txt";
-
- if($this->email->send())
- {
- echo 'Your email was sent.';
- }
- else
- {
- echo 'Shit happened';
- }
Mailen bliver stadig ikke sendt, men scriptet staller derimod. Når scriptet kører vil den loade uendelig(eller i alt fald i meget lang tid). Hvis jeg ikke laver kontrollen af om attach filen kan blive attachet (altså fjerne if/else og bare skriver $this->email->attach($file); ), så staller den på samme måde.
Er helt på bar bund mht. problemet, så ville være super nice hvis der var en der lige kunne spotte det.
edit: smider jeg debbuger ind i konsekvensen af at $this->email->send(); ikke virker staller den stadig.
- if($this->email->send())
- {
- echo 'Your email was sent.';
- }
- else
- {
- show_error($this->email->print_debugger());
- }
Indlæg senest redigeret d. 20.03.2010 18:55 af Bruger #10325