CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

Invio email automatico

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Mar 2011
    Messaggi
    30

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Unhappy

    Invio email automatico

    Ciao,
    ho seguito un tutorial per l'invio di una mail in automatico.
    In pratica voglio che al click di un button venga inviata una mail di conferma.
    Non riesco a inviare la mail e mi da warning.
    Ho importato le seguenti librerie:
    mail.jar
    activation.jar
    additionnal.jar

    Questo il mio codice:
    codice:
    private class InviaEmailTask extends AsyncTask<Void,Void,Void>  {
            @Override
                protected Void doInBackground(Void... params) {
    
                            Mail m = new Mail("info@miodominio.it", "miaPsw"); 
                            String[] toArr          = {aaa@gmail.com};
                            
                            m.setTo(toArr); 
                            m.setFrom("info@miodominio.it"); 
                            m.setSubject("iscrizione"); 
                            m.setBody("corpo email"); 
                     
                    try {
                           m.send();
                           pd.dismiss();
                           Toast.makeText(IscrizioneActivity.this, "Iscrizione avvenuta con successo", Toast.LENGTH_SHORT).show();
                           finish();
                   } catch (Exception e1) {
                          e1.printStackTrace();
            }
    Questa la classe Mail:
    codice:
    public class Mail extends javax.mail.Authenticator {
            private String _user;
            private String _pass;
    
            private String[] _to;
            private String _from;
    
            private String _port;
            private String _sport;
    
            private String _host;
    
            private String _subject;
            private String _body;
    
            private boolean _auth;
    
            private boolean _debuggable;
    
            private Multipart _multipart;
    
            public Mail() {
                    _host = "smtp.miodominio.it"; // default smtp server
                    _port = "25"; // default smtp port
                    _sport = "465"; // default socketfactory port
    
                    _user = ""; // username
                    _pass = ""; // password
                    _from = ""; // email sent from
                    _subject = ""; // email subject
                    _body = ""; // email body
    
                    _debuggable = false; // debug mode on or off - default off
                    _auth = true; // smtp authentication - default on
    
                    _multipart = new MimeMultipart();
    
                    // There is something wrong with MailCap, javamail can not find a
                    // handler for the multipart/mixed part, so this bit needs to be added.
                    MailcapCommandMap mc = (MailcapCommandMap) CommandMap
                                    .getDefaultCommandMap();
                    mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
                    mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
                    mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
                    mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
                    mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
                    CommandMap.setDefaultCommandMap(mc);
            }
    
            public Mail(String user, String pass) {
                    this();
    
                    _user = user;
                    _pass = pass;
            }
    
            public boolean send() throws Exception {
                    Properties props = _setProperties();
    
                    if (!_user.equals("") && !_pass.equals("") && _to.length > 0
                                    && !_from.equals("") && !_subject.equals("")
                                    && !_body.equals("")) {
                            Session session = Session.getInstance(props, this);
    
                            MimeMessage msg = new MimeMessage(session);
    
                            msg.setFrom(new InternetAddress(_from));
    
                            InternetAddress[] addressTo = new InternetAddress[_to.length];
                            for (int i = 0; i < _to.length; i++) {
                                    addressTo[i] = new InternetAddress(_to[i]);
                            }
                            msg.setRecipients(MimeMessage.RecipientType.TO, addressTo);
    
                            msg.setSubject(_subject);
                            msg.setSentDate(new Date());
    
                            // setup message body
                            BodyPart messageBodyPart = new MimeBodyPart();
                            messageBodyPart.setText(_body);
                            _multipart.addBodyPart(messageBodyPart);
    
                            // Put parts in message
                            msg.setContent(_multipart);
    
                            // send email
                            Transport.send(msg);
    
                            return true;
                    } else {
                            return false;
                    }
            }
    
            public void addAttachment(String filename) throws Exception {
                    BodyPart messageBodyPart = new MimeBodyPart();
                    DataSource source = new FileDataSource(filename);
                    messageBodyPart.setDataHandler(new DataHandler(source));
                    messageBodyPart.setFileName(filename);
    
                    _multipart.addBodyPart(messageBodyPart);
            }
    
            @Override
            public PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(_user, _pass);
            }
    
            private Properties _setProperties() {
                    Properties props = new Properties();
    
                    props.put("mail.smtp.host", _host);
    
                    if (_debuggable) {
                            props.put("mail.debug", "true");
                    }
    
                    if (_auth) {
                            props.put("mail.smtp.auth", "true");
                    }
    
                    props.put("mail.smtp.port", _port);
                    props.put("mail.smtp.socketFactory.port", _sport);
                    props.put("mail.smtp.socketFactory.class",
                                    "javax.net.ssl.SSLSocketFactory");
                    props.put("mail.smtp.socketFactory.fallback", "false");
    
                    return props;
            }
    
            // the getters and setters
            public String getBody() {
                    return _body;
            }
    
            public void setBody(String _body) {
                    this._body = _body;
            }
    
            public String[] getTo() {
                    return _to;
            }
    
            public void setTo(String[] toArr) {
                    this._to = toArr;
            }
    
            public String getFrom() {
                    return _from;
            }
    
            public void setFrom(String string) {
                    this._from = string;
            }
    
            public String getSubject() {
                    return _subject;
            }
    
            public void setSubject(String string) {
                    this._subject = string;
            }
    e infine questo è il warning che non mi permette di inviare la mail:
    codice:
    W/System.err(2094): javax.mail.MessagingException: Could not connect to SMTP host: smtp.miodominio.it, port: 25;
    W/System.err(2094):   nested exception is:
    W/System.err(2094):         java.net.ConnectException: failed to connect to smtp.miodominio.it/62.xxx.xxx.xxx (port 465): connect failed: ETIMEDOUT (Connection timed out)
    W/System.err(2094):         at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391)
    W/System.err(2094):         at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
    W/System.err(2094):         at javax.mail.Service.connect(Service.java:310)
    W/System.err(2094):         at javax.mail.Service.connect(Service.java:169)
    W/System.err(2094):         at javax.mail.Service.connect(Service.java:118)
    W/System.err(2094):         at javax.mail.Transport.send0(Transport.java:188)
    W/System.err(2094):         at javax.mail.Transport.send(Transport.java:118)
    W/System.err(2094):         at it.tools.Mail.send(Mail.java:106)
    W/System.err(2094):         at it.tesi.IscrizioneActivity$InviaEmailTask.doInBackground(IscrizioneActivity.java:369)
    W/System.err(2094):         at it.tesi.IscrizioneActivity$InviaEmailTask.doInBackground(IscrizioneActivity.java:1)
    W/System.err(2094):         at android.os.AsyncTask$2.call(AsyncTask.java:287)
    W/System.err(2094):         at java.util.concurrent.FutureTask.run(FutureTask.java:234)
    W/System.err(2094):         at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
    W/System.err(2094):         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    W/System.err(2094):         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    W/System.err(2094):         at java.lang.Thread.run(Thread.java:856)
    W/System.err(2094): Caused by: java.net.ConnectException: failed to connect to smtp.miodominio.it/62.xxx.xxx.xxx (port 465): connect failed: ETIMEDOUT (Connection timed out)
    W/System.err(2094):         at libcore.io.IoBridge.connect(IoBridge.java:114)
    W/System.err(2094):         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
    W/System.err(2094):         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
    W/System.err(2094):         at java.net.Socket.connect(Socket.java:842)
    W/System.err(2094):         at java.net.Socket.connect(Socket.java:785)
    W/System.err(2094):         at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233)
    W/System.err(2094):         at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:163)
    W/System.err(2094):         at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359)
    W/System.err(2094):         ... 15 more
    W/System.err(2094): Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
    W/System.err(2094):         at libcore.io.Posix.connect(Native Method)
    W/System.err(2094):         at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
    W/System.err(2094):         at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
    W/System.err(2094):         at libcore.io.IoBridge.connect(IoBridge.java:112)
    W/System.err(2094):         ... 22 more
    non riesce a fare la connessione. come risolvo?

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Mar 2011
    Messaggi
    30

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Mi rispondo da solo

    Usando un dominio aruba devo usare necessariamente:
    host: smtps.aruba.it
    port: 465

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy