Forum: Italian Ruby user group mandare mail a piu' utenti.

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Mauro S. (Guest)
on 2007-07-29 23:11
(Received via mailing list)
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.
Mauro S. (Guest)
on 2007-07-31 10:37
(Received via mailing list)
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?
Luca G. (Guest)
on 2007-07-31 13:17
(Received via mailing list)
Prova con questi formati di array:

['removed_email_address@domain.invalid', 'removed_email_address@domain.invalid']

["\"Donald Duck\" <removed_email_address@domain.invalid>", "\"Mickey M.\"
<removed_email_address@domain.invalid>"]




LG
Mauro S. (Guest)
on 2007-07-31 13:41
(Received via mailing list)
Il giorno mar, 31/07/2007 alle 11.16 +0200, Luca G. ha scritto:
> Prova con questi formati di array:
>
> ['removed_email_address@domain.invalid', 'removed_email_address@domain.invalid']

niente, non funziona.
Luca G. (Guest)
on 2007-07-31 13:56
(Received via mailing list)
Qual'è l'errore riportato nel file di log?
Mauro S. (Guest)
on 2007-07-31 14:01
(Received via mailing list)
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
> removed_email_address@domain.invalid
> http://lists.ruby-it.org/mailman/listinfo/ml

nessun errore se faccio to=['removed_email_address@domain.invalid', 
'removed_email_address@domain.invalid']
il to nella mail risulta 
removed_email_address@domain.invalidremoved_email_address@domain.invalid, cioe' 
tutto
attaccato e la mail viene recapitata solo al primo indirizzo.
bugant (Guest)
on 2007-07-31 14:21
(Received via mailing list)
On 7/31/07, Mauro S. <removed_email_address@domain.invalid> wrote:
> nessun errore se faccio to=['removed_email_address@domain.invalid', 
'removed_email_address@domain.invalid']

ma to e' un array vero? se si funziona
Claudio Zilio (Guest)
on 2007-07-31 14:22
(Received via mailing list)
Mauro S. ha scritto:
> il to nella mail risulta 
removed_email_address@domain.invalidremoved_email_address@domain.invalid, 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
Mauro S. (Guest)
on 2007-07-31 14:39
(Received via mailing list)
Il giorno mar, 31/07/2007 alle 12.22 +0200, Claudio Zilio ha scritto:
> > nessun errore se faccio to=['removed_email_address@domain.invalid', 
'removed_email_address@domain.invalid']
>
> 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="removed_email_address@domain.invalid"
    to_alias="mail1"
    to=['removed_email_address@domain.invalid','removed_email_address@domain.invalid'].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)
bugant (Guest)
on 2007-07-31 14:45
(Received via mailing list)
On 7/31/07, Mauro S. <removed_email_address@domain.invalid> 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.
Mauro S. (Guest)
on 2007-07-31 14:46
(Received via mailing list)
Il giorno mar, 31/07/2007 alle 12.43 +0200, bugant ha scritto:
> On 7/31/07, Mauro S. <removed_email_address@domain.invalid> 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
bugant (Guest)
on 2007-07-31 14:50
(Received via mailing list)
On 7/31/07, Mauro S. <removed_email_address@domain.invalid> 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.
Luca G. (Guest)
on 2007-07-31 14:58
(Received via mailing list)
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
Mauro S. (Guest)
on 2007-07-31 18:24
(Received via mailing list)
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?
Luca G. (Guest)
on 2007-07-31 20:47
(Received via mailing list)
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
Mauro S. (Guest)
on 2007-08-01 10:40
(Received via mailing list)
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.....
This topic is locked and can not be replied to.