Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

javamail e gmail

20 views
Skip to first unread message

Ayrton

unread,
Jul 28, 2008, 5:00:27 PM7/28/08
to
Buonasera a tutti,
sto cercando di creare un piccolo programma che usi javamail.
Tutto funziona perfettamente se riempio il "recipiente" TO.
Se invece uso BCC ho un eccezione che vi riporto
javax.mail.internet.ParseException: Expected parameter value, got "null"
at javax.mail.internet.ParameterList.<init>(ParameterList.java:256)
at
javax.mail.internet.ContentDisposition.<init>(ContentDisposition.java:100)
at
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1360)
at
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1030)
at
javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:416)
at
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1307)
at
javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2074)
at
javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2042)
at javax.mail.Transport.send(Transport.java:117)

Il mittente è gmail.
Mi sapete dire cosa c'è che non và?
Io mi limito a modificare questo codice
----------------------------------------------------------
for (int i = 0; i < to.size();i++){
msg.addRecipient(Message.RecipientType.TO, new
InternetAddress(to.get(i)));
}
----------------------------------------------------------
in quest'altro
----------------------------------------------------------
for (int i = 0; i < to.size();i++){
msg.addRecipient(Message.RecipientType.BCC, new
InternetAddress(to.get(i)));
}
----------------------------------------------------------

grazie

AndreAgosto

unread,
Jul 29, 2008, 3:23:32 AM7/29/08
to
Così a buttarla lì, forse il destinatario principale (TO) è
obbligatorio? In fondo CC (Carbon Copy) e BCC (Blind Carbon Copy) sono
copie, di cosa? avrebbe una logica.
Se setti una stringa vuota com TO te lo riconosce come un indirizzo
non valido?

ciao

Ayrton ha scritto:

> Buonasera a tutti,
> sto cercando di creare un piccolo programma che usi javamail.
> Tutto funziona perfettamente se riempio il "recipiente" TO.
> Se invece uso BCC ho un eccezione che vi riporto
> javax.mail.internet.ParseException: Expected parameter value, got "null"
> at javax.mail.internet.ParameterList.<init>(ParameterList.java:256)
> at
> javax.mail.internet.ContentDisposition.<init>(ContentDisposition.java:100)
> at
> javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1360)
> at
> javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1030)
> at
> javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:416)
> at
> javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1307)
> at
> javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2074)
> at
> javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2042)
> at javax.mail.Transport.send(Transport.java:117)
>

> Il mittente � gmail.
> Mi sapete dire cosa c'� che non v�?

Message has been deleted

AndreAgosto

unread,
Jul 29, 2008, 3:50:32 AM7/29/08
to
On 29 Lug, 09:25, Manuel T <man...@t.gov> wrote:

> AndreAgosto wrote:
> > Così a buttarla lì, forse il destinatario principale (TO) è
> > obbligatorio? In fondo CC (Carbon Copy) e BCC (Blind Carbon Copy) sono
> > copie, di cosa? avrebbe una logica.
> > Se setti una stringa vuota com TO te lo riconosce come un indirizzo
> > non valido?
>
> Nel mondo reale è possibile non specificare alcun TO: e mettere tutti in
> CCN:. Anzi, tutti dovrebbero farlo quando mandano boiate in massa, ma sto
> divagando.

Lo avevo presente, Infatti è per questo che ho chiesto se settando una
stringa vuota come TO funzionava.
Ti quoto il il CCN..

Ayrton

unread,
Jul 29, 2008, 4:11:09 AM7/29/08
to
AndreAgosto ha scritto:

> Così a buttarla lì, forse il destinatario principale (TO) è
> obbligatorio? In fondo CC (Carbon Copy) e BCC (Blind Carbon Copy) sono
> copie, di cosa? avrebbe una logica.
> Se setti una stringa vuota com TO te lo riconosce come un indirizzo
> non valido?
Si mi lancia una AddressException mettendo indirizzo vuoto

Ayrton

unread,
Jul 29, 2008, 4:19:11 AM7/29/08
to
Ayrton ha scritto:

Tra l'altro mi lancia la stessa eccezione se uso CC invece di BCC.
Se riempio il campo TO con un indirizzo e gli altri in BCC mi lancia
sempre la solita eccezione.
Possibile che gmail non permetta BCC e CC?

rootkit

unread,
Jul 29, 2008, 4:51:43 AM7/29/08
to
On Tue, 29 Jul 2008 10:19:11 +0200, Ayrton wrote:


> Tra l'altro mi lancia la stessa eccezione se uso CC invece di BCC. Se
> riempio il campo TO con un indirizzo e gli altri in BCC mi lancia sempre
> la solita eccezione.
> Possibile che gmail non permetta BCC e CC?

attiva il debug sulla session (setDebug(true) o dalle properties) e
togliti questo dubbio analizzando il dialogo col server.

purtroppo il mestiere del programmatore è questo, la pappa scodellata non
la si trova quasi mai.


--
++ Fino all'anno scorso avevo un solo difetto. Ero presuntuoso.
http://unopuntozero.wordpress.com/
http://www.flickr.com/photos/marko_po/

Ayrton

unread,
Jul 29, 2008, 5:23:06 AM7/29/08
to
Allora,
una notizia nuova.
Se avvio il pc e non faccio partire il mio client di posta tutto
funziona a meraviglia (anche il BCC).
Se lancio thunderbird si genera quell'eccezione e se lo chiudo
l'eccezione rimane...
Ora provo con il setDebug che mi ha detto rootkit e vi faccio sapere
Se avete idea del perché thunderbird e javamail si scazzottano avvisate.
Penso sia un problema di sessione perché thunderbird mi gestisce
l'account che uso come sorgente in javamail...
Però chiudendolo mi sarei aspettato che tutto tornasse a funzionare...
mah...

rootkit

unread,
Jul 29, 2008, 5:29:28 AM7/29/08
to
On Tue, 29 Jul 2008 11:23:06 +0200, Ayrton wrote:


> una notizia nuova.
> Se avvio il pc e non faccio partire il mio client di posta tutto
> funziona a meraviglia (anche il BCC). Se lancio thunderbird si genera
> quell'eccezione e se lo chiudo l'eccezione rimane...

secondo me stai tirando a caso andando a cercare le coincidenze invece
che i bug.

Ayrton

unread,
Jul 29, 2008, 5:53:10 AM7/29/08
to
Vi incollo nuovamente l'eccezione

javax.mail.internet.ParseException: Expected parameter value, got "null"

Il parametro che era a null era il path dell'allegato. Non controllavo
se esisteva e se era valido. Corretto quello funge come mi aspetto

Ayrton

unread,
Jul 29, 2008, 5:58:37 AM7/29/08
to
Ecco il codice. Magari in futuro servirà a qualcuno.

public void sendMail(List<String> to, String message, String subject,
String attachmentPath) throws AddressException, MessagingException,
UnsupportedEncodingException {
boolean debug = false;

Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");

Session session = Session.getDefaultInstance(props, new
MyAuthenticator());
session.setDebug(debug);

// create a message
Message msg = new MimeMessage(session);

// set the from and to address
InternetAddress addressFrom = new
InternetAddress("indi...@gmail.com");
msg.setFrom(addressFrom);

for (int i = 0; i < to.size(); i++) {
msg.addRecipient(Message.RecipientType.TO, new
InternetAddress(to.get(i)));
}

msg.setSubject(subject);

Multipart multipart = new MimeMultipart();

BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(message);

multipart.addBodyPart(messageBodyPart);

File attachment = new File(attachmentPath);
if ((attachment.exists()) && (attachment.isFile()) ) {
//allegato
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(attachmentPath);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(attachment.getName());
multipart.addBodyPart(messageBodyPart);
}

msg.setContent(multipart);

Transport.send(msg);
}

private class MyAuthenticator extends Authenticator {

MyAuthenticator() {
super();
}

@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("indi...@gmail.com",
"password");
}
}

0 new messages