[PHP] Probleem met verzenden mail via SMTP

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Dimby
  • Registratie: April 2008
  • Laatst online: 01-07-2024
Hallo,

Ik weet niet zeker of dit topic bij de softe goederen hoort of hier maar ik gok dus hier :+ .
Voor een website gebruik ik het geweldige CodeIgniter framework, nu ben ik bezig met een model die de emails voor mij gaat verzenden maar bij het verzenden van een email van STMP van Gmail. Krijg ik allerlei errors, btw ik heb de volgende tutorial gebruikt voor het verzenden van de emails ( klikkerdeklikklak ).

Nu krijg ik bij het verzenden van de email een heleboel errors, de belangrijkste ( die denk ik ook de andere veroorzaakt ) is:

A PHP Error was encountered

Severity: Warning

Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.googlemail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?)

Filename: libraries/Email.php

Line Number: 1646

De andere errors zijn fwrite en fgets errors.
Nu heb ik wat research gedaan via Google over hoe ik dit kan oplossen en ik ben dus gaan kijken of PHP de extension wel goed geinstalleerd had. Dit was dus niet zo, in de php.ini settings.ini php2.ini heb ik de ; weggehaald bij de extension=php_openssl.dll. Daarna Usbwebserver opnieuw opgestart maar helaas nogsteeds dezelfde problemen :( .
Wat doe ik fout en hoe kan ik het fixen :*) ?

Thx in advance,
Paul du Long

controller/email.php
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

class Email extends Controller {

    function Email()
    {
        parent::Controller();
        $this -> load -> model('sendEmail');
    }
    
    function index()
    {
    
        //phpinfo(); die();
        if( $this -> sendEmail -> send('***@gmail.com','Test onderwerp','Alles werkt ... denk <b>ik</b>') )
        {
            echo 'Email verzonden';
        }
        else
        {
            echo 'Email niet verzonden';
        }
    }

}


config/email.php
code:
1
2
3
4
5
6
7
8
9
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');


$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.googlemail.com';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'xxx@gmail.com';
$config['smtp_pass'] = 'xxx';
$config['mailtype'] = 'html';


models/sendEmail.php
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php

class SendEmail extends Model{                  
                    
    function SendEmail(){
        parent::Model();
        $this->load->library('email');
    }
    
    function send($to,$subject,$message,$attachment = "")
    {
        //Set data
        $this->email->set_newline("\r\n");
        $this->email->from('xxx@gmail.com', 'Paul du Long');
        $this->email->to($to);      
        $this->email->subject($subject);        
        $this->email->message( nl2br($message) );
        
        //Add attachement
        if($attachment)
        {
            $path = $_SERVER['DOCUMENT_ROOT'] . '/Marketing site/uploads/emailAttachments/';
            $file = $path . $attachment;
            $this->email->attach($file);
        }       
        
        //Send email
        if($this->email->send())
        {
            return true;
        }       
        else
        {
            show_error($this->email->print_debugger());
            return false;
        }
    }
}

Acties:
  • 0 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 19-09 15:19
Misschien kun je e.e.a. forceren via ini_set() ?

Acties:
  • 0 Henk 'm!

  • Dimby
  • Registratie: April 2008
  • Laatst online: 01-07-2024
Het enige dat ik vind met ssl is: http.request.datashare.ssl nog iets anders?

Acties:
  • 0 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 19-09 15:19
Enige wat ik mijzelf kan bedenken is je firewall en je configuratie. Kijk ook even goed in phpinfo(); of je extensions wel echt aan staan?

Acties:
  • 0 Henk 'm!

  • Dimby
  • Registratie: April 2008
  • Laatst online: 01-07-2024
Nogmaals gekeken in de PhpInfo en dit staat er:

SSL Support enabled

curl
cURL support enabled
cURL Information libcurl/7.16.0 OpenSSL/0.9.8a zlib/1.2.3

En in een log heb ik dit gevonden:
PHP Warning: PHP Startup: Unable to load dynamic library 'G:/Scripting Envoirment/UsbWebserver/Php/ext\\php_openssl.dll' - Een initialisatieroutine van de dynamic link library (DLL-bestand) is mislukt.\r\n in Unknown on line 0
Dit bestand staat echter wel in de folder....

[ Voor 50% gewijzigd door Dimby op 06-08-2009 10:33 ]


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Dus die DLL staat er wel maar hij is stuk (de melding zegt immers dat de initialisatie is mislukt, niet dat ie em niet kan vinden). Je kunt proberen een andere te downloaden via Google. Overigens zie ik een dubbele backslash staan in de waarschuwing, misschien is dat relevant?

Acties:
  • 0 Henk 'm!

  • TweakPino
  • Registratie: September 2005
  • Laatst online: 02:09
Dimby schreef op donderdag 06 augustus 2009 @ 10:18:
Nogmaals gekeken in de PhpInfo en dit staat er:
'G:/Scripting Envoirment/UsbWebserver/Php/ext\\php_openssl.dll'
Zorgt de spatie in het pad van de DLL niet voor problemen?

Acties:
  • 0 Henk 'm!

  • Dimby
  • Registratie: April 2008
  • Laatst online: 01-07-2024
In Xamp heb ik het nu opgelost door php.ini de ; weg te halen bij de openssl extension.

Hoe pas ik het pad aan bij USBwebserver?
Pagina: 1