PDA

Visualizza la versione completa : [jsp] mail confirm


erredi
20-03-2004, 13:21
premessa: sto apporciandomi a jsp da studente di economia avendo qualche conoscenza di java e qualche lezione di jsp stesso e quindi da ci capirete che non sono un drago

ho creato un simpatico sitarello per esercitarmi (no scopi commerciali )da cui si compra quello che volete [e qui ci siamo]
ho creato carrello funzionante,alla conferma inserisce nel DB (access--> sigh sigh) l'ordine e la rigadordine---
a questo punto vorrei inserire una MAIL DI CONFERMA ordine.
qualche idea? mi basterebbe anche solo mail con scritto <<confermato ordine>> anche se il max mi piacerebbe fosse che la mail contenesse un descrittivo dell'ordine

posso fare un dispatcher ceh punti alla mailto:xxx@yy.it ?????
:dh: :dh:

per avere delle info dovrebbe leggere dal db con query--- si ma per una mail come si fa? insomma le query in una pag ok ma per dirgli :<<ok quei dati mandali li....>> non ho la minima idea :dott: :dott:

Anyone? :confused:

erredi
20-03-2004, 22:55
:cry: :cry:
nessuno???? :confused:

erredi
23-03-2004, 00:42
ok.. questa l'ultimo tentativo per chiedere aiutooooooooooo
please.. non abbandonatemi..
non credo sia una cosa poi troppo assurda..
:ciauz: :bh: :bh:

Angelo1974
23-03-2004, 00:58
Ciao. Scusami per il ritardo della risposta. Allora supponiamo tu conservi da qualche parte ( sia nel DB sia nella sessione )l'indirizzo e-mail del client, allra potresti utilizzare il package javax.mail cpstruendoti una classe con almeno un metodo che si occupi di inviare la mail di conferma e richiamare questo metodo dopo che l'inserimento nel db. A tal fine ti posto una classuccia che ho costruito io, spero ti sia d'aiuto. Ciao :ciauz:




import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.io.*;

public class SendEMail {

/**
* Oggetto properties tramite cui settare la sessione
*/
private Properties pro;

/**
* Oggetto sessione
*/
private Session sessione;

/**
* Oggetto messaggio
*/
private Message messaggio;

/**
* Indirizzo e-mail mittente
*/
private InternetAddress da;

/**
* Indirizzi e-mail destinatari
*/
private InternetAddress[] a;

private DataHandler allegato = new DataHandler( new File( "prova.txt" ), MimePart.ATTACHMENT );

/**
* Costruttore della classe che setta, nelle properties, l'smtp utilizzato
* @param po -l'smtp utilizzato per inviare il messaggio
*/
public SendEMail( String po ) {

pro = System.getProperties();
pro.put( "mail.smtp.host", po );
}

/**
* Metodo che si occupa di settare la sessione
*/
private void setSessione(){

sessione = Session.getDefaultInstance( pro );
}

/**
* Metodo che si occupa di settare, inizializzare il messaggio e di inviarlo
* @param daChi -mittente
* @param aChi -destinatari
* @param oggetto -oggetto e-mail
* @param testoMessaggio -testo dell'email
* @param autoritation -true se bisogna autorizzarsi, false altrimenti
* @throws AddressException eccezione che si pu verificare se l'indirizzo e-mail
* dovesse essere non corretto
* @throws MessagingException eventuale altra eccezione
*/
public void sendMessaggio( String daChi, String aChi, String oggetto, String testoMessaggio, boolean autoritation ){

try{

setSessione();
String host = pro.getProperty( "mail.smtp.host" );

System.out.println( "["+host+"]" );
Transport t = sessione.getTransport( "smtp" );
messaggio = new MimeMessage(sessione);
da = new InternetAddress(daChi);
a = InternetAddress.parse(aChi);

messaggio.setFrom(da);
messaggio.setRecipients(Message.RecipientType.TO, a);
messaggio.setSubject(oggetto);
messaggio.setSentDate(new Date());
messaggio.setText(testoMessaggio);
//messaggio.setDataHandler(this.allegato);

if( autoritation ){

//Qu devi mettere la login
String log = "";
//Qu devi mettere la password
String psw = "";
t.connect( host, log, psw );
}else{

t.connect();
}

t.send( messaggio );
t.close();
}catch( AddressException ae ){

ae.printStackTrace();
}catch( MessagingException me ){

me.printStackTrace();
}
}

public static void main( String[] args ){

SendEMail se = new SendEMail( [ stringa dell'host con cui vuoi inviare la mail ad esempio: "mail.tin.it"] );
se.sendMessaggio( da chi, a chi, oggetto, corpo, true );
}


Prova cos dovrebbe andare, ciao ancora :ciauz:

erredi
23-03-2004, 15:04
wow!!
aspetta aspetta che mi siedo bene e ci guardo addosso..
grazie mille dell'interesse.ti far sapere..

ciauz :metallica :metallica :metallica :metallica

erredi
24-03-2004, 20:29
come che non ho questa classe???????
javax.mail
come posso fare ad importarla?ma quale sdk hai?
che release?

mmmmmmm...
mi ero messo di impegno per capirci qualcosa...
help.. :dh: :dh:


semmai vuoi aiutarmi.. anche in pvt ;)
:ciauz:

erredi
25-03-2004, 02:23
bhe in qualche modo raccimolando info qua e l sono riuscito a mettere a posto tutto.
un problema: il mio server di invio posta richiede l'autentificazione con user e password non gli basta un mail.191.it [linea adsl smart]
http://forum.html.it/forum/faccine/144.gif

visto che unico modo che ho per connettermi..
se posso implementare questo.. meglio.
poi prometto che cerco di capirci qualcosa..
ciauz :smack: :dott:

ANTAGONIA
25-03-2004, 02:31
ehy.. devi scaricarti dal sito della sun, il jar che ti permette di fare una mail!
si chiamano rispettivamente :
javamail-1.1.3 questo contiene javax.mail
jaf-1.0.2 questo contiene javax.activation

questi due jar li devi implementare nella libreria del tuo web application server,insieme a tutti quelli che hai perm esempio quello dei driver per SQL!

ciao ciao

erredi
25-03-2004, 10:36
Originariamente inviato da ANTAGONIA
ehy.. devi scaricarti dal sito della sun, il jar che ti permette di fare una mail!
si chiamano rispettivamente :
javamail-1.1.3 questo contiene javax.mail
jaf-1.0.2 questo contiene javax.activation

questi due jar li devi implementare nella libreria del tuo web application server,insieme a tutti quelli che hai perm esempio quello dei driver per SQL!

ciao ciao

grazie per la risposta ma da messaggio precedente avevo scritto che ero riuscito con un po' di pazienza..

ora son fermo per quello stupido problema di posta in uscita..
sigh :dh:
ciauz grazie :D

Angelo1974
25-03-2004, 10:58
Ciao. Scusami ma nella classetta che ti ho postato c' una parte in cui devi settare username e password pi precisamente:


if( autoritation ){

//Qu devi mettere la login
String log = "";
//Qu devi mettere la password
String psw = "";
t.connect( host, log, psw );
}else{

t.connect();
}

In pratica se la variabile booleana autoritation true allora devi mettere userName e password altrimenti no. Dovrebbe funzicae cos o no?
Fammi sapere ciao :ciauz: :ciauz:

Loading