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
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�?
Lo avevo presente, Infatti è per questo che ho chiesto se settando una
stringa vuota come TO funzionava.
Ti quoto il il CCN..
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?
> 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/
> 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.
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
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");
}
}