• User

    Problema invio mail da script PHP su VPS

    Ciao a tutti,
    ho un problema con l'invio di mail da un vps, su cui ho messo da poco diversi siti che prima avevo in hosting condiviso.
    Server virtuale linux, domini registrati presso un registrarr che puntano verso il mio vps.
    Tutto funziona tranne l'invio di mail da script php.
    In realtà la funzione mail() mi dà un ritorno corretto (lo stesso i vari contact form ad es. di wordpress che la usano); sulla mail legata al dominio ricevo le mail inviate da script, mentre su gmail, yahoo ecc. no. Invece se invio le mail dalla webmail e non da script, le ricevo correttamente anche su gmail.
    Il mail server è sendamail, ma ho provato anche con exim.

    Ne ho dedotto, cercando qua e là, che si tratti di un problema di SPF.
    Adesso ho impostato un record txt di questo tipo: "v=spf1 a mx ptr ~all" e non funziona.
    Ho provato anche altre combinaizoni, leggendo un po' la guida di SPF, ma niente.

    Inutile dire che quando i siti erano in hosting la mail in invio funzionava. Non solo: per un mese ho avuto un altro VPS su un altro provider, lì il record DNS era sempre "v=spf1 a mx ptr ~all", eppure le mail le inviavo e ricevevo correttamente.

    Avete qualche idea per aiutarmi?
    Sarà davvero un problema di SPF? Cos'altro potrei controllare?

    grazie mille


  • User Attivo

    nel log che errori ti da?


  • Moderatore

    Controlla se l'ip è bannato. Puoi guarda i log, altrimenti è impossibile sapere che sta succedendo.


  • User

    ciao,
    scusate l'ignoranza, ma il log...dove si guarda?
    cioè io posso vedere da VHM il mail delivery report, e lì per ogni mail inviata mi dice "Message accepted": il messaggio sembra effettivamente inviato.
    Invece per ip bannato intendi finito nelle blacklist? Perchè ho trovato un tool che ti fa questa verifcia e avevo tutti ok.

    grazia mille.


  • Moderatore

    Si c'è la possibilità di vedere i log del mail server da whm. In caso contrario accedi alla shell e vai a guardare il file /var/log/maillog o /var/log/syslog.


  • User

    Ciao,
    quello che mi viene fuori in mailog. Naturalmente io ci capisco ben poco...ad esempio ho fatto un altro invio di mail di prova (sempre senza successo) adesso, ma nel log vedo solo date del 26...
    mah, se poi devo cercare qualcos'altro se gentilmente mi spieghi come fare magari ne veniamo a capo.
    Ecco il log:

    Aug 26 04:02:37 www spamd[30359]: spamd: connection from localhost [127.0.0.1] at port 39781
    Aug 26 04:02:37 www spamd[30359]: spamd: setuid to cpanel succeeded
    Aug 26 04:02:37 www spamd[30359]: spamd: processing message [email protected] for cpanel:32001
    Aug 26 04:02:37 www spamd[30359]: spamd: identified spam (1000.0/5.0) for cpanel:32001 in 0.1 seconds, 834 bytes.
    Aug 26 04:02:37 www spamd[30359]: spamd: result: Y 999 - GTUBE,NO_RECEIVED,NO_RELAYS scantime=0.1,size=834,user=cpanel,uid=32001,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=39781,mid=[email protected],autolearn=no,shortcircuit=no
    Aug 26 04:02:37 www spamd[30356]: prefork: child states: I
    Aug 26 04:02:37 www dovecot: pop3-login: Aborted login (no auth attempts): rip=127.0.0.1, lip=127.0.0.1, secured
    Aug 26 04:02:38 www dovecot: imap-login: Login: user=<__cpanel__service__auth__imap__rwzixlzvn6tmtqymvzjepmszo8luu2ks08rdod23mrmfvl...>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
    Aug 26 04:02:38 www dovecot: IMAP(__cpanel__service__auth__imap__rwzixlzvn6tmtqymvzjepmszo8luu2ks08rdod23mrmfvlxq37kssat5dvykheqy): Disconnected: Logged out bytes=11/340
    Aug 26 04:07:38 www spamd[30359]: spamd: connection from localhost [127.0.0.1] at port 45926
    Aug 26 04:07:38 www spamd[30359]: spamd: setuid to cpanel succeeded

    Grazie mille per l'aiuto


  • User

    Ciao,
    ho provato anche col comando grep e ottengo l'elenco delle ultime mail effettivamente inviate per il dominio da cui ho fatto la prova; però poi non capisco le altre informazioni...ecco il log (riporto una riga sola, sono tutte simili:

    root@www [~]# grep miodominio /var/log/exim_mainlog
    2012-08-26 12:18:48 1T5Zvc-0000g5-7O SMTP connection outbound 1345976328 1T5Zvc-0000g5-7O qui viene il nome del dominio qui viene l'indirizzo di destinazione, che non posso postare

    grazie


  • Moderatore

    Dovrebbero esserci eventuali messaggi d'errore relativi all'invio.


  • User

    ciao,
    in effetti io non vedo errori, per quel che capisco...
    ho letto in giro diversi post con problemi di invio mail da vps, ma nessuno risolto...infatti sto impazzendo da giorni!

    Se può essere utile, da VHM, in mail delivery reports, per ogni messaggio inviato, che poi non ricevo, questa è la "scheda":

    mi accorgo or ora che il delivery ip non è quello del mio vps, sarà quello del provider...quindi?

    [TABLE="class: event_details"]

    [TD]Event:[/TD]
    [TD]success image[/TD]
    [/TR]

    [TD]User:[/TD]
    [TD]mio user
    [/TD]
    [/TR]

    [TD]Domain:[/TD]
    [TD]miodominio
    [/TD]
    [/TR]

    [TD]Sender:[/TD]
    [TD]miodominio@dominio principale del server
    [/TD]
    [/TR]

    [TD]Sent Time:[/TD]
    [TD]Aug 30, 2012 1:41:01 AM[/TD]
    [/TR]

    [TD]Sender Host:[/TD]
    [TD]localhost[/TD]
    [/TR]

    [TD]Sender IP:[/TD]
    [TD]127.0.0.1[/TD]
    [/TR]

    [TD]Authentication:[/TD]
    [TD]localuser[/TD]
    [/TR]

    [TD]Spam Score:[/TD]
    [TD][/TD]
    [/TR]

    [TD]Recipient:[/TD]
    [TD]mia mail chiocciola gmail.com
    [/TD]
    [/TR]

    [TD]Delivered To:[/TD]
    [TD][TABLE="class: event_details"]

    [TD]mia mail chiocciola gmail.com
    [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [/TR]

    [TD]Delivery User:[/TD]
    [TD]-remote-[/TD]
    [/TR]

    [TD]Delivery Domain:[/TD]
    [TD][/TD]
    [/TR]

    [TD]Router:[/TD]
    [TD]lookuphost[/TD]
    [/TR]

    [TD]Transport:[/TD]
    [TD]remote_smtp[/TD]
    [/TR]

    [TD]Out Time:[/TD]
    [TD]Aug 30, 2012 1:41:01 AM[/TD]
    [/TR]

    [TD]ID:[/TD]
    [TD]1T6rsx-0005IE-OH[/TD]
    [/TR]

    [TD]Delivery Host:[/TD]
    [TD]gmail-smtp-in.l.google.com[/TD]
    [/TR]

    [TD]Delivery IP:[/TD]
    [TD]74.125.134.27[/TD]
    [/TR]

    [TD]Size:[/TD]
    [TD]412 bytes[/TD]
    [/TR]

    [TD]Result:[/TD]
    [TD]Message accepted

    [/TD]
    [/TR]
    [/TABLE]


  • Moderatore

    Se gli ip non corrispondono, i server riceventi bollano le email come spam e le rigettano. Devi chiedere al provider di impostare il reverse dns per il tuo dominio.


  • User

    Ciao,
    io ho il pannello dns sia sul provider dove ho registrato il dominio, sia sul provider del vps, dove posso impostare i dans per ogni dominio. Nel secondo posso impostare record PTR, nel primo no.
    Però ho le idee un po' confuse:

    facciamo che A è il registrar del dominio e B è il provider del vps;

    1. se io dal pannello di A imposto come nameserver quelli di B, poi il pannello DNS di A non mi interessa più, e imposto tutto dal pannello di B? O devo comunque impostare i record A, CNAME ecc. anche sul pannello di A?
    2. mettiamo che creo un record PTR (è questo il reverse, giusto?) sul pannello di B: da una parte ci metto il dominio e dall'altr l'ip: ma quale ip metto? Quello da cui le mail sono "delivered"? Cioè nel mio caso Delivery IP: 74.125.134.27 (vedi post precedente).

    Comunque rimango confuso: se io avessi una macchina fisica che uso come server, e ci installo un mailserver, e ho solo un ip, quello della macchina, non posso inviare mail da lì? e perchè non riesco a fare lo stesso dal vps, visto che ha un suo ip?

    grazie mille, sopratutto per la pazienza con chi è un po' duro come me...


  • Moderatore

    Non è così semplice come la descrivi. I server smtp che ricevono le email vedono l'ip assegnato al vps. Fanno un controllo dell'ip e risalgono all'hostname. Risolvono l'hostname e l'ip non è lo stesso assegnato al vps, scartano l'email.

    Normalmente o si ha totale controllo sui dns e allora si può impostare il PTR in proprio, altrimenti il PTR dev'essere impostato nei dns di livello superiore di proprietà del provider. Questo perchè il delivery ip risulta essere quello del provider. In verità è già dubbio il motivo per cui dovrebbe essere quell'ip invece di quello del vps.


  • User

    Ciao,
    infatti. Ma io non posso settare in proprio l'ip da cui la mail viene inviata? Sarà un'impostazione del mailserver (uso exim?)

    Comuqnue poi ho scritto all'assistenza, dopo un po' di scambi di ticket mi hanno scritto così:

    "Is order to fix the issue you will need to use domainKeys. Please provide us domainkeys that you wish to apply for it, so that we can proceed further.

    Awaiting your response."
    Sui domainKeys non sono molto preparato...mi pare di capire che è una cosa che devono impostare loro, ma se per ogni dominio devo fare una richiesta diventa uno strazio...
    mi aiuti a interpretare?

    grazie!


  • Moderatore

    Niente, si tratta di aggiungere un header col nome di dominio dentro. Ma comunque io non le ho mai usate in 12 anni e le mail arrivano. Lì il problema è che l'ip del sender non è impostato correttamente. Quindi o è un problema di configurazione del mail server o c'è un filtro loro che lo modifichi prima che esca dalla rete del provider.


  • User

    ok grazie,
    provo a vedere se riesco a configurare il mail server e vedo che succede.
    Ho anche esposto il problema del diverso ip, vediamo cosa mi rispondono...
    ti faccio sapere.

    grazie!


  • User

    ciao,
    eccomi di nuovo!
    non ne sono venuto ancora a capo.
    Allora: il sender ip e il sender domain sono impostati su locahost: pessimo, giusto?

    ma come si fa a cambiare? nella configurazinoe di exim disponibile su vhm non trovo la voce giusta; oppure va cambiato nel php.ini?
    forse se riesco a impostare lì l'ip del mio vps risolvo...

    grazie


  • Moderatore

    Ovviamente localhost non va bene. Comunque se vhm non lo permette, allora edita i file del mail server direttamente.


  • User

    ciao,
    non ne sono ancora venuto a capo.
    Però guardando bene il delivery report vedo che il sender ip (non il delivery) è 127.0.0.1 e il sender domain è localhost: pessimo, giusto?
    però non so come configurarlo: va configurato in exim? Perchè nella configurazione di exim via vhm non ci sono quelle voci...o invece è un parametro di php.ini?
    Perchè magari se riesco ametterci lì il mio ip e un dominio che punta a quell'ip e viceversa poi funziona...

    mi sapete aiutare a cambiare quei due parametri?

    grazie!


  • User

    Scusate, non vedevo il mio post e pensavo di non aver cliccato "invia", allora l'ho riscritto...scusate.

    Dunque sì, era che dato la mia ignoranza ovviamente non so che file cambiare, mentre se lo individuo poi saprei usare un editor linux per cambiarlo...
    Anche cercando un po' su google non riesco a capire il file di configurazione dove sia scritto l'ip...


  • Moderatore

    Devi studiartelo un pò http://exim.work.de/exim-html-3.20/doc/html/spec_7.html

    Il file in genere è /etc/exim.conf