Ciao a tutti, cercherò di esprimere il problema in modo sintetico di modo da risultare comprensibile.
Ho necessità di realizzare uno script PHP che utilizza la funzione mail() per inviare delle e-mail di conferma: niente di trascendentale, é a scopo didattico.
Tuttavia, ho insormontabili problemi a far funzionare la funzione mail() sul sistema operativo in uso, vale a dire Ubuntu 10.04.
Lo MTA installato é Postfix con tutti i pacchetti relativi, il server é Apache 2.2.
L'utlizzo é solamente in locale, perché a scopo didattico.
Il server di posta in uscita SMTP é mail.libero.it, senza necessità di autenticazione.
Mi collego al web attraverso un router/modem integrato di utilizzo casalingo, con IP statico, il localhost é identificato dallo IP 127.0.1.1, non so perché usi questo invece del classico 127.0.0.1.
Lo script di prova che faccio girare é un banalissimo:
Quando lo faccio interpretare ad Apache 2.2, nel browser viene una pagina bianca dopo un paio di secondi di attesa, ma non arriva nessuna e-mail.Codice PHP:<?php
mail("destinatario@dominio.estensione", "E-Mail di prova PHP", "Testo dell'e-mail");
?>
Sono impazzito settimane e settimane su Google a cercare una configurazione adatta del file main.cf di Postfix e di php.ini di Php, ma niente, non sono riuscito a far inviare nessuna e-mail dallo script di prova elementare.
Ho letto di potenziali problemi con Postfix per quanto riguarda il nome dell'host, che deve essere un FQDN (non sono ferratissimo in materia), ma non ne sono venuto a capo.
Eseguendo hostname --fqdn da terminale il nome di macchina é lorenzo-desktop.
Eseguendo domainname da terminale il risultato é none.
Vi scrivo un estratto dei due file:
etc/php5/apache2/php.ini
etc/postfix/main.cfcodice:[mail function] ; For Win32 only. ; http://php.net/smtp SMTP = mail.libero.it ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = me@example.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path sendmail_path = "/usr/sbin/postfix" ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(), even in safe mode. ;mail.force_extra_parameters = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename mail.add_x_header = On ; Log all mail() calls including the full path of the script, line #, to address and headers ;mail.log =
Cosa sbaglio secondo voi? Ho un bisogno disperato di venirne a capo... Come mai la mail() non invia il messaggio? E' un problema del FQDN che la mia macchina in effetti non ha? Eventualmente come rimediare?codice:myhostname = lorenzo-desktop alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = $myhostname, localhost.$mydomain, localhost relayhost = mail.libero.it mynetworks = 127.0.0.0/16, 127.0.1.1 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all home_mailbox = Maildir/ smtpd_sasl_auth_enable = no smtpd_sasl_type = cyrus smtpd_sasl_path = smtpd smtpd_sasl_authenticated_header = no smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = broken_sasl_auth_clients = no smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination smtpd_sender_restrictions = mailbox_command = procmail -a "$EXTENSION" smtp_use_tls = no smtpd_tls_received_header = no smtpd_tls_mandatory_protocols = SSLv3, TLSv1 smtpd_tls_mandatory_ciphers = medium smtpd_tls_auth_only = no tls_random_source = dev:/dev/urandom html_directory = /usr/share/doc/postfix/html inet_protocols = all
Altri problemi, con la configurazione del php.ini, ad esempio (non sono per niente sicuro di quel sendmail path, per esempio)?
All'avvio di Apache compaiono i seguenti messaggi:
Ringrazio tutti dell'eventuale aiuto, e scusate la prolissità, gli estratti dei file di configurazione sono inevitabilmente lunghi.codice:apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [Tue Sep 21 22:29:30 2010] [warn] NameVirtualHost *:80 has no VirtualHosts ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [Tue Sep 21 22:29:31 2010] [warn] NameVirtualHost *:80 has no VirtualHosts

Rispondi quotando