View Full Version : [Java] Mandare email
GiulioCesare
09-11-2005, 12:20
Salve ragazzi, sto cercando di inviare email in java, però ho un problema, che penso che derivi dall'host di libero, con il quale sto cercando di inviare email, comunque posto il codice con la speranza che qualcuno mi aiuti.
public void manda()throws Exception
{
URL url=new URL("http://193.70.192.25");
URLConnection uc = url.openConnection();
System.setProperty("user.fromaddr", "pippo@libero.it");
PrintStream ps = new PrintStream(uc.getOutputStream());
System.out.println("Sending SMTP headers");
ps.print("Subject: Test\r\n");
ps.flush();
ps.print("From: p...@pallino.it\r\n");
ps.flush();
System.out.println("Sending blank line");
ps.print("r\n");
ps.flush();
// Body
System.out.println("Sending body");
ps.print("It's just\r\n");
ps.flush();
ps.print("a little test\r\n");
ps.flush();
// Finish
System.out.println("Closing stream");
ps.close();
Thread.sleep(100000);
System.out.println("Finished");
}
perche metti un'url invece di un server smtp? :S
GiulioCesare
09-11-2005, 13:57
Vorresti dire che la stringa che passo al costruttore della classe URL, deve contenere il nome di un server smtp?
Sicuro che sia il modo giusto?
Stai scrivendo istruzioni che mi sembrano abbastanza sensate per inviare una email tramite telnet sulla porta 25 di un server SMTP, però non mi pare tu gestisca le risposte del server. E ti connetti, come già detto, tramite protocollo http (e non SMTP) sulla porta 80....
Prova a usare la libreria javaMail (l'ho scritto alla veloce, potrebbero esserci errori)
try
{
String nomeServerSmtp = "smtp.libero.it"; // controlla il server
String emailFrom = "mittente@tuoServer.it";
String emailTo = "destinatario@suoServer.it";
String mailSubject = "Titolo di prova";
String mailBody = "Corpo del messaggio";
Properties prop = System.getProperties();
prop.put ("mail.host", nomeServerSmtp);
prop.put ("mail.transport.protocol", "smtp");
javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(prop, null);
mailSession.setDebug(false);
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(emailFrom));
InternetAddress[]toAddress = {new InternetAddress(emailTo)};
msg.setRecipients(Message.RecipientType.TO, toAddress);
// oppure: msg.setRecipients(Message.RecipientType.BC, toAddress);
// oppure: msg.setRecipients(Message.RecipientType.BCC, toAddress);
msg.setSubject(mailSubject);
msg.setSentDate(new Date());
msg.setText(mailBody);
Transport.send(msg);
}
catch (Exception e) {System.out.println("Eccezione: "+e);}
GiulioCesare
09-11-2005, 18:27
Ho provato ad usare il tuo codice, saresti così gentile da dirmi quali import devo aggiungere, ho provato ad usare l'import di javax.mail, ma dice che il package non esiste :muro:
Ho provato ad usare il tuo codice, saresti così gentile da dirmi quali import devo aggiungere, ho provato ad usare l'import di javax.mail, ma dice che il package non esiste :muro:
Devi scaricare il package a parte, non è incluso nel JDK: dovresti trovarlo qui (http://java.sun.com/products/javamail/).
Ho provato ad usare il tuo codice, saresti così gentile da dirmi quali import devo aggiungere, ho provato ad usare l'import di javax.mail, ma dice che il package non esiste :muro:
La libreria dovrebbe essere questa
http://java.sun.com/products/javamail/downloads/index.html
Spero non sia cambiata molto rispetto al codice che ho scritto.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.