Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [JAVA] Per usare JavaMail serve un server mail?

    Salve,

    ho realizzato una semplice applicazione web che invia una mail attraverso le librerie JavaMail.
    Se faccio tutto a livello locale non ci sono problemi in quando uso come server smtp quello del mio client di posta. Se però volessi mettere questo programma on line su un server web che ovviamente supporta Tomcat suppongo che non sia possibile usare il mio server mail locale
    Ho provato anche a mettere i parametri GMail ma non funziona...ma cmq me lo aspettavo.

    La domanda è: se voglio mettere questo programma on line devo fare in modo che su Tomcat giri anche un server mail dedicato che si occupa appunto dello smistamento effettivo delle mail?
    Se si, come suppongo, quale usare? Tomcat ne ha già uno suo?
    Ovviamente mi rivolgo a soluzioni OpenSource o cmq Freeware.

    Spero di essere stato chiaro.

    Grazie dell'attenzione,
    Matteo.
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Non è necessario avere alcun server SMTP proprio.
    Sinceramente non so perchè ti dia problemi con GMail (potrei capire con un server tipo quello di Libero che pretende la connessione internet con Libero).

    Tutto ciò che serve è avere a disposizione l'indirizzo di un server SMTP pubblico (non necessariamente un proprio SMTP, va bene qualunque SMTP purchè si abbia il diritto di usarlo). Avere il diritto di usarlo, nella maggior parte dei casi, significa avere un account presso il gestore di quel server SMTP. Per questo dovrebbe funzionare anche con GMail.

    Tomcat non ha nessun server SMTP preinstallato.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    beh intanto navigando un pò ho visto che GMail non usa la classica porta 25 per l'smtp bensì la 465 ed inoltre usa la SSL. Mi sa che devo smanattare un pò
    Vi terrò aggiornati
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  4. #4
    Ho modificato la classe per adeguarla a GMail (in particolare l'uso della SSL e della porta non standard)...ma niente da fare. Non invia niente per time-out infatti dice

    Could not connect to SMTP host: smtp.gmail.com, port: 465;

    Ecco la classe (senza i miei dati di accesso però ):

    Codice PHP:
    import java.security.Security;
    import java.util.Properties;
    import javax.mail.*;
    import javax.mail.internet.*;

    public class 
    SimpleMail {
        private 
    String mailhost "smtp.gmail.com";

        public 
    synchronized void sendMail(String subjectString body,
            
    String senderString recipientsthrows Exception {

        
    Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

        
    Properties props = new Properties();
        
    props.setProperty("mail.transport.protocol""smtp");
        
    props.setProperty("mail.host"mailhost);
        
    props.put("mail.smtp.auth""true");
        
    props.put("mail.smtp.port""465");
        
    props.put("mail.smtp.socketFactory.port""465");
        
    props.put("mail.smtp.socketFactory.class",
            
    "javax.net.ssl.SSLSocketFactory");
        
    props.put("mail.smtp.socketFactory.fallback""false");
        
    props.setProperty("mail.smtp.quitwait""false");

        
    Session session Session.getDefaultInstance(props,
            new 
    javax.mail.Authenticator() {
                protected 
    PasswordAuthentication getPasswordAuthentication() {
                return new 
    PasswordAuthentication("myAccount@gmail.com",
                    
    "myPassword");
                }
            });

        
    MimeMessage message = new MimeMessage(session);
        
    message.setSender(new InternetAddress(sender));
        
    message.setSubject(subject);
        
    message.setContent(body"text/plain");
        if (
    recipients.indexOf(',') > 0)
            
    message.setRecipients(Message.RecipientType.TOInternetAddress
                
    .parse(recipients));
        else
            
    message.setRecipient(Message.RecipientType.TO, new InternetAddress(
                
    recipients));

        
    Transport.send(message);

        }

        public static 
    void main(String args[]) throws Exception {
        
    SimpleMail sm = new SimpleMail();
        
    sm.sendMail("mySubject""myBody""mySender@gmail.com""myRecipients@its.na.it");

        }


    Qualche suggerimento?

    PS: Io cmq non riesco a capire una cosa...io l'account gmail non ce l'ho configurato nel mio client di posta, bensì leggo le email con GMail dal Web. Ma come fa questo programma a collegarsi a GMail? Semplicemente attraverso il server smtp? Cioè che fa va su internet e cerca questo server e prova a loggarsi? :master:
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da matthew80
    PS: Io cmq non riesco a capire una cosa...io l'account gmail non ce l'ho configurato nel mio client di posta, bensì leggo le email con GMail dal Web. Ma come fa questo programma a collegarsi a GMail? Semplicemente attraverso il server smtp? Cioè che fa va su internet e cerca questo server e prova a loggarsi? :master:
    A parte il fatto che, se non erro, GMail non utilizza il protocollo SMTP, ma IMAP (quindi dovrai modificare di conseguenza la classe), quello che accade è semplicissimo:

    la classe si connette con il server IMAP di GMail, effettuando la connessione con i tuoi dati per l'accesso (quindi, in buona sostanza, sei tu che ti connetti), quindi richiede l'invio di una mail all'indirizzo specificato. Esattamente come fa qualunque altro client di posta, da Outlook, a Mozilla Mail, ecc.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Ciao a tutti...

    Come procede la situazione delle e-mail??

    Perchè siamo in 2 ... A me interesserebbe scrivere una classe con del codice generico, ad esempio, io ho i miei dati per loggare su un SMTP Server, e di conseguenza la classe è standard, e richiamando dati diversi può tranquillamente loggare su un qualsiasi server...

    Secondi voi è possibile?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.