Italy mailing list archives

italy@odoo-community.org

Avatar

Re: [odoo 12] Invio Email a seguito di chiamata API

by
virginio
- 26/06/2019 00:43:35

Ciao Francesco (e Omar),

purtroppo non sono esperto (non ancora ;-) ) di python, ma avendo già sviluppato più volte applicazione web con php che inviano mail, mi sento di consigliarti di non utilizzare l'invio delle mail direttamente dal tuo server.
A meno che tu non abbia installato un mail server (postfix o qmail)  ed ovviamente averlo ben configurato per evitare scocciature dagli spammer, dovresti utilizzare il server di posta del tuo provider collegandoti via SMTP. Sono sicuro che nelle migliaia di librerie disponibili per python, ci sono già pronte librerie per farlo. In questo modo ti eviti sia di doverti configurare un server di posta serio con i relativi problemi, ma anche il fatto che devi correttamente configurarti anche i registri DNS del dominio da cui invii le mail (mi riferisco al record SPF) per evitare di finire in una Mail Black List, da cui togliersi a volte è proprio rognoso...

Inoltre se dovessi aver bisogno di inviare tante mail in poco tempo, o a molti destinatari, potresti anche valutare l'ipotesi di utilizzare dei servizi on-line per inviare newsletter tipo mailchimp. Sono certo che esistono librerie python anche per questo.

Spero di averti dato un aiuto e non averti confuso le idee :)

Virginio


Il 25.06.19 21:22, Fra 2.0 ha scritto:

Ciao Omar,

di sicuro utile, per il progetto attuale però volevo tenere lo script esterno il più semplice possibile.

Per capire questo è lo script esterno che esegui? quindi effettui un login da remoto?

Grazie,

Cari Saluti,

Francesco

/* Books are the best weapon in the world.
   [...]Arm yourself! */

Francesco Faenza
Independent Developer
https://www.francescofaenza.it
On 25/06/2019 09:14, Omar Dini wrote:

Ciao Francesco

io, usando uno script esterno, faccio una cosa del genere per inviare messaggi ad un canale.. e di conseguenza le mail:

odoo = odoorpc.ODOO('indirizzodiodoo', port=8069)
odoo.login('db', 'user', 'password')
user = odoo.env.user
body="body del messaggio" 
mailChannel = odoo.env['mail.channel'] 
			mc_ids= mailChannel.search([('name','ilike','Fatture')]) 
for mcid in mc_ids: 
ch = mailChannel.browse(mcid)
				ch.message_post(attachment_ids=[],body=body,content_subtype='html',
					message_type='comment',partner_ids=[],subtype='mail.mt_comment',
					email_from=user.partner_id.email,author_id=user.partner_id.id)

Non so se ti e' utile

Ciao

Omar Dini 
Il 25/06/19 07:51, Fra 2.0 ha scritto:
Buongiorno a tutti,

scrivo per un consiglio. Ho scritto un modulo per un progetto che 
prevede l'utilizzo di API REST.

L'autenticazione per l'invio delle richieste avviene con HTTP Basic 
Authentication (quindi ci pensa nginx nel mio caso), quindi a livello di 
odoo l'esecuzione avviene da public user.

Come conseguenza di una chiamata in particolare ci dovrebbe essere 
l'invio di una mail, però l'utente public non può farlo quindi uso 
sudo() per inviare la mail.

C'è un modo migliore? C'è modo di usare un utente specifico ad-hoc 
magari (se non sbaglio al metodo sudo() posso passare un user_id, corretto?)

Grazie in anticipo,

Cari Saluti,

Francesco


/* Books are the best weapon in the world.
    [...]Arm yourself! */

Francesco Faenza
Independent Developer
https://www.francescofaenza.it
	

_______________________________________________
Mailing-List: https://odoo-community.org/groups/italy-53
Post to: mailto:italy@odoo-community.org
Unsubscribe: https://odoo-community.org/groups?unsubscribe

_______________________________________________
Mailing-List: https://odoo-community.org/groups/italy-53
Post to: mailto:italy@odoo-community.org
Unsubscribe: https://odoo-community.org/groups?unsubscribe

--
Virginio Laurini

Pingitore informatica

Pingitore Informatica
via Somaini, 3
6900 - Lugano

Uff. +41 (0)91 980 04 10/11
Fax. +41 (0)91 980 04 11

www.pingitoreinformatica.ch

Reference