Re: exim4 e indirizzi mail in base all'smtp

2017-10-24 Per discussione Piviul

Il 17/10/2017 09:50, Giuseppe Sacco ha scritto:

[...]
In alternativa, puoi evitare l'utilizzo della funzione mail() e
chiamare direttamente sendmail (che è un link a exim) con il parametro
«-f» seguito dall'indirizzo che vuoi utilizzare come «sender address».
In questo caso dovresti aggiungere l'utente www-data (o quello che
esegue il tuo codice PHP) a quelli ai quali exim permette di cambiare
il «sender address». (vedi MAIN_TRUSTED_USERS in
/etc/exim4/conf.d/main/02_exim4-config_options)
ho adottato questa soluzione anche se in realtà il terzo parametro della 
funzione mail() di php viene considerato come l'elenco dei parametri che 
vengono passati a sendmail. Quindi se nel terzo parametro si inserisce 
-f envelop-addr...@dominio.com verrà proprio utilizzato 
envelop-addr...@dominio.com come envelop address!


Mille grazie ancora

Piviul



Re: exim4 e indirizzi mail in base all'smtp

2017-10-17 Per discussione Giuseppe Sacco
Buongiorno Piviul,

Il giorno lun, 16/10/2017 alle 11.37 +0200, Piviul ha scritto:
[...]
> L'applicativo utilizza la funzione mail di php 
> (http://php.net/manual/en/function.mail.php) per inviare la posta e
> già 
> setto nel messaggio il from address della mail quindi il problema è 
> relativo. Però il fatto che tutta la posta venga inviata tramite un 
> unico envelop-address non mi piace proprio...
> 
> A questo punto mi chiedo se non sia possibile fare in modo che exim 
> possa cambiare envelop-address quando consegna la posta a certi smtp 
> servers.. chiedo troppo ad exim?

exim può riscrivere il «sender address» durante l'accettazione del
messaggio via SMTP (cfr: http://www.exim.org/exim-html-current/doc/html
/spec_html/ch-address_rewriting.html#SECTrewriteS ).

Però mi pare di capire che la funzione mail() del PHP non faccia una
connessione SMTP, bensì utilizzi il comando sendmail. In questo caso
l'indirizzo è sempre quello dell'utente che invoca sendmail, oppure
quello che definisci in /etc/email-addresses.

In realtà mi pare di capire che mail() possa anche usare un server SMTP
anziché sendmail, ma solo su Windows. Il tutto pare configurabile nel
file php.ini. Per maggiori informazioni immagino ti convenga rivolgerti
ad una lista di sviluppatori in PHP.

In alternativa, puoi evitare l'utilizzo della funzione mail() e
chiamare direttamente sendmail (che è un link a exim) con il parametro
«-f» seguito dall'indirizzo che vuoi utilizzare come «sender address».
In questo caso dovresti aggiungere l'utente www-data (o quello che
esegue il tuo codice PHP) a quelli ai quali exim permette di cambiare
il «sender address». (vedi MAIN_TRUSTED_USERS in
/etc/exim4/conf.d/main/02_exim4-config_options)

Ciao,
Giuseppe



exim4 e indirizzi mail in base all'smtp

2017-10-16 Per discussione Piviul
Ciao a tutti, grazie a Marco funziona più o meno tutto: ho configurato 
hubbed_hosts in modo che se il sistema invia una mail al nostro dominio 
la consegni all'smtp interno, se ad un dominio riconosciuto come pec la 
consegni al nostro smtp pec altrimenti venga consegnata allo smarthost. 
Però è sempre il più o meno che frega!


Quello che non mi piace molto è che per farlo ho dovuto configurare 
/etc/email-address in modo che www-data (l'utente con il quale gira la 
nostra applicazione che invia le mail) abbia come envelop-address il 
nostro indirizzo pec altrimenti il server smtp pec si rifiuta di 
accettare posta da un indirizzo diverso prima ancora di iniziare la fase 
di autenticazione (per fortuna il nostro smarthost non fa questo 
controllo!).


L'applicativo utilizza la funzione mail di php 
(http://php.net/manual/en/function.mail.php) per inviare la posta e già 
setto nel messaggio il from address della mail quindi il problema è 
relativo. Però il fatto che tutta la posta venga inviata tramite un 
unico envelop-address non mi piace proprio...


A questo punto mi chiedo se non sia possibile fare in modo che exim 
possa cambiare envelop-address quando consegna la posta a certi smtp 
servers.. chiedo troppo ad exim?


Piviul