Attraverso il mio client mail in java riesco senza alcun problema ad inviare mail da account hotmail.it tramite il seguente codice:
codice:String smtpHost="smtp.live.com"; String da="esempio@host.it" String password="esempio"; String a="altroEsempio"; String oggetto="prova"; Properties prop = new Properties(); prop.put("mail.smtp.starttls.enable", "true"); prop.put("mail.smtp.host",smtpHost); prop.put("mail.smtp.user", da); prop.put("mail.smtp.password", password); prop.put("mail.smtp.port", "587"); prop.put("mail.smtp.auth", "true"); Session session=Session.getInstance(prop); Message msg=new MimeMessage(session); msg.setFrom(new InternetAddress(da)); msg.setRecipients(Message.RecipientType.TO,new InternetAddress(a)); msg.setSubject(oggetto); d=new Date(); msg.setSentDate(d); MimeBodyPart mbp=new MimeBodyPart(); String testo="ciao"; mbp.setContent(testo ,"text/html"); Multipart mp=new MimeMultipart(); mp.addBodyPart(mbp); msg.setContent(mp); Transport transport = session.getTransport("smtp"); transport.connect(smtpHost, da, password); transport.sendMessage(msg, msg.getAllRecipients()); msg.saveChanges(); transport.close();
mentre con lo stesso procedimento per un account @hotmail.com ottengo la seguente eccezzione:
dove:codice:com.sun.mail.smtp.SMTPSendFailedException: 550 5.3.4 Requested action not taken; To continue sending messages, please sign in to your account. at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2057) at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1862) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1100) at mail.Ascoltatore.invia(Ascoltatore.java:88) .............. ..........
Ascoltatore.java:88 sarebbe la riga "transport.sendMessage(msg, msg.getAllRecipients());"
perchè non funziona?dove sbaglio?come posso risolvere?

Rispondi quotando