hbrendel Posted December 7, 2007 Share Posted December 7, 2007 Ik heb van een bestaande FM toepassing een webversie gemaakt in php. Soms moet er een mail worden verstuurd. Ik gebruik hiervoor de (php) functie mail(). Hoewel deze functie "1" retourneert, komt de e-mail niet aan. Ik heb vervolgens zitten zoeken en ik heb het idee dat de smtp server niet goed staat ingesteld in php.ini. Ik maak gebruik van de mailserver van mijn provider, in dit geval smtp.xs4all.nl. In phpinfo staat bij SMTP: localhost Wat moet daar staan, en hoe doe ik dat? Wat kan er nog meer fout zijn? BVD Henk Quote Link to comment
0 Jeroen Aarts Posted December 9, 2007 Share Posted December 9, 2007 (edited) Hoi Henk, Verander in je php.ini bestand, gewoon die regel in SMTP = smtp.xs4all.nl Als alternatief kan je voor het versturen van je mail, in je PHP code ini_set('SMTP', 'smtp.xs4all.nl') invoeren. Je krijgt een 1 omdat de communicatie met de lokale SMTP server wel in orde is, maar als die de mail "verder" wil versturen naar bestemming (technisch: gerelayed) dan wordt die vrijwel zeker tegengehouden door de firewall van je ISP. PHP is zich daar niet van bewust. Ik veronderstel dat je PHP op een Windows server draait? De PHP mail() functie werkt op Windows nl. anders dan in Unix/Linux distributies. - Jeroen Edited December 9, 2007 by Guest Quote Link to comment
0 hbrendel Posted December 9, 2007 Author Share Posted December 9, 2007 Nee, mijn FM server draait onder Mac OS X 10.4 Ik ga jouw suggestie uitproberen. Ik ben een beetje huiverig om zomaar te experimenteren met php.ini. Ik laat nog weten hoe het gaat. Henk Quote Link to comment
0 Jeroen Aarts Posted December 9, 2007 Share Posted December 9, 2007 Hoi Henk, jij antwoord sneller dan ik kan typen Onder Mac/Unix/Linux werkt de mail() functie met de lokale sendmail toepasing. Je server zal mail versturen, maar die wordt heel waarschijnlijk geblokkeerd door je ISP. Als alternatief kan je de PEAR mail klasse gebruiken (http://pear.php.net/package/Mail), die via een opgegeven SMTP server mail verstuurt, of een van de vele andere (gratis) bestaande klassen zoals XPert Mailer (http://www.xpertmailer.com/) ... - Jeroen Quote Link to comment
0 hbrendel Posted December 9, 2007 Author Share Posted December 9, 2007 Jeroen, bedankt. Ik ga dat morgen eens rustig uitzoeken. Henk Quote Link to comment
0 hbrendel Posted December 11, 2007 Author Share Posted December 11, 2007 Ik heb een en ander uitgebreid nagezocht en ik geloof dat ik het nu begrijp. Er blijft één vraag over: Hoe weet ik of het mail-pakket van PEAR geïnstalleerd is, en zo niet, hoe installeer je dat? Quote Link to comment
0 Jeroen Aarts Posted December 11, 2007 Share Posted December 11, 2007 Henk, Je kan PEAR packages handmatig installeren door ze te downloaden via pear.php.net. Probleem is dat veel packages afhankelijk zijn van andere. Mail is bv. afhankelijk van Net_SMTP (SMTP commands) en Net_SMTP is op haar beurt weer afhankelijk van het package Net_Socket (TCP/IP communicatie). Het makkelijkst is de pear packet manager te gebruiken. Dit wordt t.e.m. Mac OS 10.4 normaal meegeinstalleerd met elke PHP installatie. Om het PEAR Mail package te installeren met de manager, ga als volgt te werk: - open de terminal - typ: sudo pear install -a Mail Dit installeert Mail en alle packages waarvan Mail afhankelijk is. Je krijgt hierover feedback in de terminal: de manager download de packages en installeert ze in de PHP include folder. Om na te gaan welke PEAR packages je geïnstalleerd hebt: - open de terminal - typ: pear list Quote Link to comment
0 hbrendel Posted December 11, 2007 Author Share Posted December 11, 2007 Jeroen, hier heb ik wat aan, ontzettend bedankt! Jammer genoeg kan ik er pas donderdag mee aan de slag. Ik zal hier melden hoe het afgelopen is. Henk Quote Link to comment
0 hbrendel Posted May 23, 2008 Author Share Posted May 23, 2008 Het is inmiddels een half jaar later. Ik ben er toen niet aan toe gekomen, en heb onlangs de draad weer opgepakt. Ik heb Jeroen's advies opgevolgd en de getracht het mailpakket te instelleren via de terminal. Ik krijg nu de volgende melding: sudo: pear: command not found Hoe kan dat nou? ?????? Quote Link to comment
0 Peter Wagemans Posted May 25, 2008 Share Posted May 25, 2008 Misschien gebruik je al Leopard. http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105/ Quote Link to comment
0 Jeroen Aarts Posted May 25, 2008 Share Posted May 25, 2008 Ik veronderstel dat je Leopard hebt. Helaas is PEAR niet automatisch geïnstalleerd (zoals met Tiger, snif ....) Hier vind je wel vrij duidelijke instructies over de installatie op Leopard: http://clickontyler.com/blog/2008/01/how-to-install-pear-in-mac-os-x-leopard/ HTH Jeroen Quote Link to comment
0 Peter Wagemans Posted May 25, 2008 Share Posted May 25, 2008 Beide artikels zijn een beetje slordig over de installatie, en als je dat blind volgt kom je nergens. Ik had pear ook nog niet geinstalleerd, dus was ik er ook maar eens aan begonnen. Deze prompt kreeg ik tijdens de install: Below is a suggested file layout for your new PEAR installation. Tochange individual locations, type the number in front of the directory. Type 'all' to change all of them or simply press Enter to accept these locations. 1. Installation prefix ($prefix) : /Users/peter/Desktop 2. Temporary files directory : $prefix/temp 3. Binaries directory : $prefix/bin 4. PHP code directory ($php_dir) : $prefix/PEAR 5. Documentation base directory : $php_dir/docs 6. Data base directory : $php_dir/data 7. Tests base directory : $php_dir/tests 1-7, 'all' or Enter to continue: Het is NIET de bedoeling dat je hier gewoon Enter doet. Stop de installatie met control-c en doe het volgende sudo php go-pear.php of sudo !! de "!!" is een truukje om je laatste commando te herhalen… Verander de directories zodat alles er zo uit ziet: Below is a suggested file layout for your new PEAR installation. Tochange individual locations, type the number in front of the directory. Type 'all' to change all of them or simply press Enter to accept these locations. 1. Installation prefix ($prefix) : /usr/local 2. Temporary files directory : $prefix/temp 3. Binaries directory : $prefix/bin 4. PHP code directory ($php_dir) : /usr/share/pear 5. Documentation base directory : $php_dir/docs 6. Data base directory : $php_dir/data 7. Tests base directory : $php_dir/tests 1-7, 'all' or Enter to continue: We veranderen onze prefix dus naar /usr/local en de PHP code directory naar /usr/share/pear. Merk op dat er dus een flater staat in beide artikels: uppercase PEAR <> lowercase pear op een Mac. Het is ook niet nodig om de php.ini manueel aan te passen, het installertje doet dat netjes voor je. Hier is het verdere verloop van mijn installatie: The following PEAR packages are bundled with PHP: PEAR_Frontend_Web-beta,PEAR_Frontend_Gtk2, MDB2. Would you like to install these as well? [Y/n] : Loading zlib: ok Bootstrapping Installer................... Bootstrapping PEAR.php............(remote) ok Bootstrapping Archive/Tar.php............(remote) ok Bootstrapping Console/Getopt.php............(remote) ok Extracting installer.................. Downloading package: PEAR.............ok Downloading package: Structures_Graph....ok Preparing installer.................. Updating channel "pear.php.net" Update of Channel "pear.php.net" succeeded Updating channel "pecl.php.net" Update of Channel "pecl.php.net" succeeded Installing selected packages.................. Downloading and installing package: PEAR.............warning: pear/PEAR requires package "pear/Archive_Tar" (recommended version 1.3.2) warning: pear/PEAR requires package "pear/Structures_Graph" (recommended version 1.0.2) warning: pear/PEAR requires package "pear/Console_Getopt" (recommended version 1.2.3) pear/PEAR can optionally use package "pear/XML_RPC" (version >= 1.4.0) downloading PEAR-1.7.2.tgz ... Starting to download PEAR-1.7.2.tgz (302,744 bytes) ..........................done: 302,744 bytes install ok: channel://pear.php.net/PEAR-1.7.2 PEAR: Optional feature webinstaller available (PEAR's web-based installer) PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer) PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer) PEAR: To install optional features use "pear install pear/PEAR#featurename" Installing bootstrap package: Structures_Graph.......install ok: channel://pear.php.net/Structures_Graph-1.0.2 Downloading and installing package: Archive_Tar-stable.......downloading Archive_Tar-1.3.2.tgz ... Starting to download Archive_Tar-1.3.2.tgz (17,150 bytes) ...done: 17,150 bytes install ok: channel://pear.php.net/Archive_Tar-1.3.2 Downloading and installing package: Console_Getopt-stable.......downloading Console_Getopt-1.2.3.tgz ... Starting to download Console_Getopt-1.2.3.tgz (4,011 bytes) ...done: 4,011 bytes install ok: channel://pear.php.net/Console_Getopt-1.2.3 Downloading and installing package: PEAR_Frontend_Web-beta.......downloading PEAR_Frontend_Web-0.7.2.tgz ... Starting to download PEAR_Frontend_Web-0.7.2.tgz (52,876 bytes) ...done: 52,876 bytes downloading HTML_Template_IT-1.2.1.tgz ... Starting to download HTML_Template_IT-1.2.1.tgz (21,565 bytes) ...done: 21,565 bytes install ok: channel://pear.php.net/HTML_Template_IT-1.2.1 install ok: channel://pear.php.net/PEAR_Frontend_Web-0.7.2 Downloading and installing package: PEAR_Frontend_Gtk2.......Did not download optional dependencies: pear/XML_Parser, pear/XML_Util, use --alldeps to download automatically Did not download dependencies: pear/System_Command, use --alldeps or --onlyreqdeps to download automatically pear/PEAR_Frontend_Gtk2 requires PHP extension "php-gtk" (version >= 2.0.0dev) pear/Config can optionally use package "pear/XML_Parser" pear/Config can optionally use package "pear/XML_Util" pear/Gtk2_EntryDialog requires PHP extension "php-gtk" (version >= 2.0.0dev) pear/Gtk2_FileDrop requires PHP extension "php-gtk" (version >= 2.0.0dev) pear/MIME_Type can optionally use package "pear/System_Command" downloading Config-1.10.11.tgz ... Starting to download Config-1.10.11.tgz (27,718 bytes) ...done: 27,718 bytes downloading MIME_Type-1.0.0.tgz ... Starting to download MIME_Type-1.0.0.tgz (4,404 bytes) ...done: 4,404 bytes install ok: channel://pear.php.net/Config-1.10.11 install ok: channel://pear.php.net/MIME_Type-1.0.0 Downloading and installing package: MDB2.............downloading MDB2-2.4.1.tgz ... Starting to download MDB2-2.4.1.tgz (119,790 bytes) ...done: 119,790 bytes install ok: channel://pear.php.net/MDB2-2.4.1 MDB2: Optional feature fbsql available (Frontbase SQL driver for MDB2) MDB2: Optional feature ibase available (Interbase/Firebird driver for MDB2) MDB2: Optional feature mysql available (MySQL driver for MDB2) MDB2: Optional feature mysqli available (MySQLi driver for MDB2) MDB2: Optional feature mssql available (MS SQL Server driver for MDB2) MDB2: Optional feature oci8 available (Oracle driver for MDB2) MDB2: Optional feature pgsql available (PostgreSQL driver for MDB2) MDB2: Optional feature querysim available (Querysim driver for MDB2) MDB2: Optional feature sqlite available (SQLite2 driver for MDB2) MDB2: To install optional features use "pear install pear/MDB2#featurename" ****************************************************************************** WARNING! The include_path defined in the currently used php.ini does not contain the PEAR PHP directory you just specified: /share/pear> If the specified directory is also not in the include_path used by your scripts, you will have problems getting any PEAR packages working. Would you like to alter php.ini /etc/php.ini>? [Y/n] : Y php.ini /etc/php.ini> include_path updated. Current include path : .: Configured directory : /usr/share/pear Currently used php.ini (guess) : /private/etc/php.ini Press Enter to continue: The 'pear' command is now at your service at /usr/local/bin/pear mbpro:Desktop peter$ php go-pear.php Welcome to go-pear! Onderaan mijn php.ini had hij dus netjes bijgevoegd: ;***** Added by go-pear include_path=".:/usr/share/pear" ;***** Vervolgens kan je Jeroen verder volgen: mbpro:Desktop peter$ sudo pear install -a MailPassword: downloading Mail-1.1.14.tgz ... Starting to download Mail-1.1.14.tgz (17,537 bytes) ......done: 17,537 bytes downloading Net_SMTP-1.3.0.tgz ... Starting to download Net_SMTP-1.3.0.tgz (10,259 bytes) ...done: 10,259 bytes downloading Net_Socket-1.0.8.tgz ... Starting to download Net_Socket-1.0.8.tgz (5,441 bytes) ...done: 5,441 bytes downloading Auth_SASL-1.0.2.tgz ... Starting to download Auth_SASL-1.0.2.tgz (5,645 bytes) ...done: 5,645 bytes install ok: channel://pear.php.net/Mail-1.1.14 install ok: channel://pear.php.net/Net_Socket-1.0.8 install ok: channel://pear.php.net/Auth_SASL-1.0.2 install ok: channel://pear.php.net/Net_SMTP-1.3.0 Quote Link to comment
0 Peter Wagemans Posted May 25, 2008 Share Posted May 25, 2008 Oja, dan zag ik ook nog achteraf met "pear config-show" dat pear blijkbaar de locatie van mijn php.ini niet wist. Je doet dan: sudo pear config-set php_ini /private/etc/php.ini Quote Link to comment
0 hbrendel Posted May 25, 2008 Author Share Posted May 25, 2008 Gaat dit ook allemaal op wanneer je PHP door FileMaker Server hebt laten installeren? De php.ini staat dan bijvoorbeeld in /Library/Filemaker Server/Web Publishing/publishing-engine/php/lib/php.ini En geldt dat dan niet voor de hele PHP-installatie? Quote Link to comment
0 Jeroen Aarts Posted May 25, 2008 Share Posted May 25, 2008 Inderdaad, het gaat allemaal. Je met na installatie wel de nodige paden veranderen. Je volgt Peters' instructies en je voert - zoals Peter ook aangaf - nadien via pear config-set commando's nadien de juiste paden in van je php.ini en je php installatie dir. Typ best eerst pear config-show in de terminal, om alle configuratieparamters en hun huidige waarde te bekijken. Je kan ook meteen kiezen om pear in dezelde dir te installeren als php. Kijk daarvoor ergens in de /Library/Filemaker Server/Web Publishing/publishing-engine/php/lib/ dir waar je 'php' terugvindt Quote Link to comment
0 hbrendel Posted May 25, 2008 Author Share Posted May 25, 2008 Ik heb de installatie uitgevoerd volgens de beschrijving van Peter. De hele PEAR boel staat nu - inclusief het Mail pakket - in de directory /usr/share Ik heb daarna een test gedaan, maar het aanroepen van Mail-functies genereert nog steeds een error. Dat had ik wel verwacht, want ik heb nog geen paden aangepast. Nu snap ik nog niet hoe ik de FileMaker PHP installatie duidelijk maak, dat het daar staat. Ik ben dus wat gaan neuzen, en ik heb gemerkt dat er al een complete PEAR installatie staat in /Library/FileMaker Server/Web Publishing/publishing-engine/php/lib/php Daar staat Mail, enz natuurlijk niet in. Wat nu? Kennelijk heeft FileMaker de PEAR class wel degelijk geïnstalleerd, maar dat wist de Terminal niet. Nu zijn er dus twee. Kan ik de hele PEAR map nu overzetten? Moet ik Apache herstarten? Ik ben een leek met Unix, help mij alsjeblieft nog een klein beetje. Quote Link to comment
0 hbrendel Posted May 25, 2008 Author Share Posted May 25, 2008 Welaan heren Peter en Jeroen, het werkt!! Het enige dat ik heb gedaan na mijn laatste post was het include-path aanpassen in de juiste php.ini. (usr/share/pear toegevoegd) Wat mij nog verontrust is dus nog wel die dubbele aanwezigheid van al die bestanden. Is het niet cleaner om alles bij elkaar te hebben? Quote Link to comment
0 Jeroen Aarts Posted May 26, 2008 Share Posted May 26, 2008 Ik ben dus wat gaan neuzen, en ik heb gemerkt dat er al een complete PEAR installatie staat in /Library/FileMaker Server/Web Publishing/publishing-engine/php/lib/php Weer wat bijgeleerd! Waarom het moeilijk maken als het ook eenvoudig kan Je kan misschien best de nieuwe pear (ja, dat zwarte bestandje!) en de pear map in usr/share/ verwijderen, om verwarring te vermijden. In het vervolg ga je in je terminal eerst naar de PEAR map via cd /Libaray/pad-naar-PEAR. Daar typ je de nodige commando's en dat zal wel werken! Quote Link to comment
Question
hbrendel
Ik heb van een bestaande FM toepassing een webversie gemaakt in php.
Soms moet er een mail worden verstuurd. Ik gebruik hiervoor de (php) functie mail().
Hoewel deze functie "1" retourneert, komt de e-mail niet aan.
Ik heb vervolgens zitten zoeken en ik heb het idee dat de smtp server niet goed staat ingesteld in php.ini.
Ik maak gebruik van de mailserver van mijn provider, in dit geval smtp.xs4all.nl. In phpinfo staat bij SMTP: localhost
Wat moet daar staan, en hoe doe ik dat? Wat kan er nog meer fout zijn?
BVD
Henk
Link to comment
17 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.