Configurare sendmail all’interno di un mobile contenitore
Ho un mobile contenitore l’esecuzione di php e apache. L’host è in un AWS istanza che ha la finestra mobile istanza in esecuzione. Non riesco a inviare una e-mail da mobile terminal. C’è un modo per inviare una e-mail da mobile istanza con sendmail che utilizza il mobile host configurazione?
Il seguente comando invia una email da host, ma non di inviare una e-mail da mobile istanza. Nessun errore è dato.
echo "Subject: Testing Email" | cat - text | /usr/lib/sendmail -F [email protected] -t [email protected]
- Che MTA fornisce voi con il programma sendmail? [sendmail/postfix/exim]
- sendmail-8.12+ viene installato per impostazione predefinita set GROUP id. Secondo commento stackoverflow.com/a/23157832/2139766 pannello di default non consente l’esecuzione di impostare l’id del gruppo di programmi.
- Spero che questo commento sarà di aiuto in qualche modo : github.com/docker-library/php/issues/135#issuecomment-277199026
Quello che mi viene da fare è configurare l’host MTA per l’ascolto su
docker0
e installare ssmtp nel contenitore per il ponte di sendmail nel contenitore con l’host MTA. Il motivo per eseguire un MTA sull’host del sistema (critico) errori può essere inviata al admin postale. Il motivo di non esecuzione MTA nel contenitore che si trata di un processo come il sistema host, è già in esecuzione un MTA.Sull’host, ho usato postfix. Tutto quello che dobbiamo fare è configurare postfix per l’ascolto su
docker0
e accettare la posta in uscita da scaricatore di porto container. Modificare il file/etc/postfix/main.cf
e aggiungere ildocker0
indirizzo IP diinet_interfaces
in modo che accetti connessioni da Mobile contenitori. Inoltre, aggiungere gli indirizzi di rete Mobile contenitori permynetworks
in modo che la finestra Mobile contenitori sono legali per inviare e-mail tramite il server postfix su un host. (di riferimento, e per ulteriori dettagli)Di usare sendmail in contenitori, installare ssmtp e impostare
FromLineOverride
essere consentito e emailhub
l’indirizzo IP dell’host in/etc/ssmtp/ssmtp.conf
. È possibile impostaremailhub
essere un simbolo comesmtp-server
e quindi eseguire il contenitore con--add-host
opzione, come mostrato in questo Dockerfile (eseguito con--add-host smtp-server:your-docker0-address
). Questo sarebbe configurare un utile sendmail in contenitori che vogliono usare l’host MTA per inviare e-mail.sudo ufw allow from 172.17.0.0/16 to any port 25
Nessuna nel Dockerfile è sendmail (o di qualsiasi altro agente di posta elettronica) installato. L’host, ma a quanto pare non hanno sendmail disponibili. Il “migliore” o più Mobile come soluzione per la selezione di un altro contenitore che viene eseguito un MTA (come postfix o exim), e configurare l’applicazione per l’uso che.
precedenti risposte,
creare config/sendmail_config.sh con:
cambiare yum per apt-get di debian based contenitori
quindi in Dockerfile aggiungere:
Voglio sendmail con il mio php util così posso attaccare ovunque senza dover link a un altro MTA contenitore o l’host per completare il compito.
Ho eseguito sh sendmail_config.sh e quindi eseguire il mio php util.
echo "$line $line2.localdomain" >> /etc/hosts
conecho "$line $line2.localdomain $(hostname)" >> /etc/hosts
exec sendmail -bD
come comando di avvioSupponendo che non c’è un server di posta installato e configurato su un host!
Alpino base mobile le immagini devono avere
sendmail
eseguibile.La soluzione più semplice è quello di eseguire il contenitore su un host’ di rete:
Per eseguire il contenitore con rete predefinita ponte,
configurare il server di posta per l’ascolto mobile interfaccia 172.17.0.1,
e consentire per l’inoltro di e-mail da mobile subnet 172.17.0.0/16.
Exim opzioni interessato a: /etc/exim4/update-exim4.conf.conf
Riavviare il server di posta ed eseguire il contenitore dettagliato:)
Aggiunta di un nome di dominio pienamente qualificato per la finestra Mobile host nome in /etc/hosts fa il trucco per me:
A me sembra questo:
È inoltre possibile utilizzare questo script bash per aggiornare automaticamente questa linea:
Di riferimento: http://hjk41.azurewebsites.net/2015/09/25/using-sendmail-inside-docker/
RUN echo -e "$(hostname -i)\t$(hostname) $(hostname).localhost" >> /etc/hosts
/var/spool/mqueue
, ma non raggiungono mai gli indirizzi vengono inviati.echo -e "$(hostname -i)\t$(hostname) $(hostname).localhost" >> /etc/hosts
seguita da un riavvio del servizioservice sendmail restart
ha funzionato per meHo pensato a un modo solo, anche se non è la soluzione più elegante. Ho configurato sendmail dentro la mia finestra mobile per inoltrare la richiesta tramite ip dell’host. Aggiungere la seguente riga al file “/etc/mail/access
Inoltre, l’host e mobile, commento la riga seguente nel file “/etc/mail/sendmail.mc” con prefisso con “dnl #” e il suffisso, con “dnl”.
Ho superato l’ip dell’host come una variabile di ambiente per il mobile contenitore, in modo che sia configurabile. Ora la finestra mobile è sendmail sarà relè è di sendmail smtp richiesta tramite il computer host.
EDIT: si Prega di vedere xuhdev risposta per maggiori informazioni e su come configurare la mail di inoltro. La mia risposta può essere utilizzato per la configurazione di sendmail, invece di postfix su host.
EDIT #2: Aggiungere la regola del firewall per consentire il traffico smtp da scaricatore di porto
Ho fatta una simile configurazione come la tarun mittal come segue:
nella finestra mobile host, modificato /etc/mail/sendmail.mc mettesse in ascolto sulla docker0 interfaccia (in contrasto a tutte le interfacce tarun risposta – il grassetto è aggiunto line)
DAEMON_OPTIONS (Famiglia=inet, Nome=MTA-v4, Port=smtp, Addr=127.0.0.1′)dnl
DAEMON_OPTIONS (Famiglia=inet, Nome=MTA-v4, Port=smtp, Addr=172.17.42.1′)dnl
Consentire l’accesso da mobile contenitori docker interfaccia del firewall
iptables-I INPUT-s 172.17.0.0/24-d 172.17.42.1 -dport 25 -j ACCEPT
in /etc/mail/access ho aggiunto alla fine di permettere a tutti mobile istanze di inviare e-mail e makemap hash /etc/mail/access < /etc/mail/access per la compilazione del database
///MODIFICATO – USO DI SEGUITO COME FINESTRA MOBILE ANDRÀ A 172.17.1.X dopo molti ricostruisce
///VECCHIA – Connect:172.17.0 RELÈ
Connect:172.17 RELÈ
Infine riavviare sendmail – servizio sendmail riavviare
sendmail
programma.Ho lottato con questo problema. Dal mio codice python in esecuzione all’interno di un mobile contenitore, ho dovuto temporaneamente inviare e-mail tramite postfix (server smtp) in esecuzione sul computer host. Dopo aver provato tutta una serie di cose, in quello che si rivelò essere una soluzione semplice è stata pannello di comando esegui con –net=”host”. Attenzione: Questo non può essere una buona soluzione in tutti i casi, come ad un contenitore di condividere lo stack di rete con la finestra mobile host e dal contenitore punto di vista, localhost(o 127.0.0.1) farà riferimento per la finestra mobile host.
Ecco quello che ho fatto su un host ubuntu:
mobile run-si –net=”host” ubuntu /bin/bash
Questo mi ha dato il contenitore a guscio.
Ho poi installato python in questo contenitore:
apt-get update && apt-get-y install supervisore python-pip
Poi ho lanciato l’interprete python e licenziato le seguenti righe di codice:
Ho trovato anche [questo][1] una lettura utile.
Devi puntare inet_interfaces a ponte mobile (docker0) in post fix config situato a /etc/postfix/main.cfr
inet_interfaces =
Più di lavoro interno dettaglio l’invio di e-mail da mobile tramite postfix installato sul computer host
Nota: utilizzare il comando ifconfig per ottenere la finestra mobile ponte di indirizzo
Secondo Sendmail manuale possiamo utilizzare
sendmail -bd
comando per l’esecuzione di un servizio. Ma esiste con zero di stato. Quindi…Inoltre è possibile utilizzare supervisord.
Io uso questa configurazione:
E prova:
Non dimenticate di controllare la cartella Spam.
Per me, semplicemente aggiungendo l’opzione –rete host=bandiera sul mio pannello di comando esegui lavorato. È necessario utilizzare l’host per inviare l’e-mail.