Mandare mail a piu' utenti

Come posso inviare una mail a piu’ utenti contemporanemente?
Il metodo che utilizzo, trovato su internet, e’:

def send_email(from, from_alias, to, to_alias, subject, message)
msg = <<END_OF_MESSAGE
From: #{from_alias} <#{from}>
To: #{to_alias} <#{to}>
Subject: #{subject}

#{message}
END_OF_MESSAGE

Net::SMTP.start(‘localhost’) do |smtp|
smtp.send_message msg, from, to
end
end

Nella variabile “to” se metto un solo indirizzo funziona, se ne metto
piu’ di uno, separati da virgole, non funziona.

Il giorno dom, 29/07/2007 alle 21.26 +0200, Mauro S. ha scritto:

#{message}
END_OF_MESSAGE

Net::SMTP.start(‘localhost’) do |smtp|
smtp.send_message msg, from, to
end
end

Nella variabile “to” se metto un solo indirizzo funziona, se ne metto
piu’ di uno, separati da virgole, non funziona.

non lo sa nessuno?

Prova con questi formati di array:

[‘[email protected]’, ‘[email protected]’]

[“"Donald Duck" [email protected]”, “"Mickey M."
[email protected]”]

LG

Il giorno mar, 31/07/2007 alle 11.16 +0200, Luca G. ha scritto:

Prova con questi formati di array:

[‘[email protected]’, ‘[email protected]’]

niente, non funziona.

Qual’è l’errore riportato nel file di log?

Il giorno mar, 31/07/2007 alle 11.56 +0200, Luca G. ha scritto:

Qual’è l’errore riportato nel file di log?


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml

nessun errore se faccio to=[‘[email protected]’, ‘[email protected]’]
il to nella mail risulta [email protected][email protected], cioe’ tutto
attaccato e la mail viene recapitata solo al primo indirizzo.

Mauro S. ha scritto:

il to nella mail risulta [email protected][email protected], cioe’ tutto
attaccato e la mail viene recapitata solo al primo indirizzo.

la virgola che utilizzi nella definizione dell’array è solo una
convenzione
che definisce la fine di un elemento e l’inizio del successivo, ma non
fa parte
di nessun elemento.

Prova a passare al campo to la sringa risultante da

to.join(" , ")

questo dovrebbe prendere tutti gli elementi della tua array to e
metterli dentro ad
una stringa utilizzado il separatore messo tra " " in questo caso ,

ciao
Claudio

On 7/31/07, Mauro S. [email protected] wrote:

nessun errore se faccio to=[‘[email protected]’, ‘[email protected]’]

ma to e’ un array vero? se si funziona

Il giorno mar, 31/07/2007 alle 12.22 +0200, Claudio Zilio ha scritto:

nessun errore se faccio to=[‘[email protected]’, ‘[email protected]’]

to.join(" , ")

niente “premature end of script header”
il codice e’:

def sendMail(from, from_alias, to, to_alias, subject, message)
msg = <<END_OF_MESSAGE
From: #{from_alias} <#{from}>
To: #{to_alias} <#{to}>
Subject: #{subject}

#{message}
END_OF_MESSAGE
Net::SMTP.start(‘mail1’) do |smtp|
smtp.send_message msg, from, to
end
end

def sendMailOnInsert(mail, nominativo)
from_alias=“mail1”
from=“[email protected]
to_alias=“mail1”
to=[‘[email protected]’,‘[email protected]’].join(" , “)
to1_alias=nominativo
to1=mail
subject=”[MAIL1] nuovo account"
message="#{nominativo}\t#{mail}\n\ninserito da:
#{ENV[“REMOTE_USER”]}\ncollegato da: #{ENV[“REMOTE_ADDR”]}"
subject1=“messaggio da mail1”
message1=“Ricordati di cambiare la password.”
sendMail(from, from_alias, to, to_alias, subject, message)
sleep(2)
sendMail(from, from_alias, to1, to1_alias, subject1, message1)

Il giorno mar, 31/07/2007 alle 12.43 +0200, bugant ha scritto:

On 7/31/07, Mauro S. [email protected] wrote:

niente “premature end of script header”
infatti non e’ che sia un errore
fare #{to} ma ti da’ un risultato diverso
da quello che vuoi tu.

fai una prova con irb e vedi la differenza
tra il tuo risultato e quello che ottieni
se provi la soluzione indicata da Claudio.

con irb a=[‘prova’,‘prova1’].join"," mi da appunto prova,prova1
ma nel mio codice non mi funziona

On 7/31/07, Mauro S. [email protected] wrote:

con irb a=[‘prova’,‘prova1’].join"," mi da appunto prova,prova1
ma nel mio codice non mi funziona

come ti dicevo tu gli stai passando una stringa invece che un array.
devi passare un array al metodo sendMail che hai definito e non una
stinga
e poi il join lo fai li dentro.

On 7/31/07, Mauro S. [email protected] wrote:

niente “premature end of script header”
infatti non e’ che sia un errore
fare #{to} ma ti da’ un risultato diverso
da quello che vuoi tu.

fai una prova con irb e vedi la differenza
tra il tuo risultato e quello che ottieni
se provi la soluzione indicata da Claudio.

ciao ciao,
matteo.

Il giorno mar, 31/07/2007 alle 12.58 +0200, Luca G. ha scritto:

Erroneamente credevo stessi usando ActionMailer, non avevo prestato
attenzione al codice.

Il punto è che nel testo del messaggio #{to} viene risolto invocando
to_s, che su di un array produce la notazione [elemento1, elemento2].

Secondo l’api doc, il blocco all’interno di #start risulta essere corretto.

Quindi non c’e’ soluzione a meno che non usi ActionMailer?

Erroneamente credevo stessi usando ActionMailer, non avevo prestato
attenzione al codice.

Il punto è che nel testo del messaggio #{to} viene risolto invocando
to_s, che su di un array produce la notazione [elemento1, elemento2].

Secondo l’api doc, il blocco all’interno di #start risulta essere
corretto.

http://www.ruby-doc.org/core/classes/Net/SMTP.html#M004111

Il giorno mar, 31/07/2007 alle 18.46 +0200, Luca G. ha scritto:

(www.ruby-lang.org/en/raa.html)
a me va piu’ che bene ‘net/smtp’ solo che non riesco a capire come fare
a mandare mail a piu’ utenti contemporaneamente…

Mauro S. ha scritto:

Quindi non c’e’ soluzione a meno che non usi ActionMailer?

Citando il doc:

What is This Library NOT?

This library does NOT provide functions to compose internet mails. You
must create them by yourself. If you want better mail support, try
RubyMail or TMail. You can get both libraries from RAA.
(www.ruby-lang.org/en/raa.html)

FYI: the official documentation on internet mail is: [RFC2822]
(www.ietf.org/rfc/rfc2822.txt).

LG