Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670

    [JAVA] Inviare email con JAVAMAIL (autenticazione)

    Ciao a tutti!
    Utilizzo questa classe per inviare email.

    codice:
     import javax.mail.*;
     import javax.mail.internet.MimeMessage;
     import javax.mail.internet.InternetAddress;
     import javax.mail.internet.AddressException;
     import java.util.Properties;
     import java.io.*;
     
     public class invioEmail {
     
     	public static void main(String a[]) {
    	
    		if(null== a || a.length < 5){
    			System.out.println("UTILIZZO DEL PROGRAMMA: :Server: :da: :a: :oggetto: :messaggio: ");
    			return;
    		}
    	
    			String server = a[0];
    			String from = a[1];
    			String to = a[2];
    			String subject = a[3];
    			String body = a[4];
    		
    			Properties props = new Properties();
    			props.setProperty("mail.smtp.host", server);
    			
    			Session session = Session.getDefaultInstance(props, auth);
    			Message message = new MimeMessage(session);		
    
    			
    				try{
    					Address sender = new InternetAddress(from);
    					Address recipient = new InternetAddress(to);
    					
    					message.setFrom(sender);
    					message.setRecipient(Message.RecipientType.TO, recipient);
    					message.setSubject(subject);
    					message.setText(body);
    					
    					Transport.send(message);
    				}
    				catch(AddressException e) {
    					e.printStackTrace();
    				}	
    				catch(MessagingException e) {
    					e.printStackTrace();
    				}						
    	} 
     }
    Riesco ad inviare senza nessun problema a qualsiasi destinatario...
    Riesco a fare tutto ciò perchè il server non mi richiede nessuna autenticazione..... visto che per forza di cose devo utilizzare una altro server smtp che richiede l'autenticazione...
    Come devo modificare il codice per dare questo benedetto utente e password
    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    nessuno utilizza questo framework?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    niente questo framework non ha avuto molto successo!!!

    Nessuno???

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    niente devo lasciar stare e pensare ai socket mi sa tanto... VVoVe:
    nessuno??

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    grazie mille, ora provo...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    codice:
     import javax.mail.*;
     import javax.mail.internet.MimeMessage;
     import javax.mail.internet.InternetAddress;
     import javax.mail.internet.AddressException;
     import java.util.Properties;
     import java.io.*;
     import javax.swing.*;
    
     
     public class invioEmail {
     
     	public static void main(String a[]) {
    	
    		if(null== a || a.length < 5){
    			System.out.println("UTILIZZO DEL PROGRAMMA: :Server: :da: :a: :oggetto: :messaggio: ");
    			return;
    		}
    	
    			String server = a[0];
    			String from = a[1];
    			String to = a[2];
    			String subject = a[3];
    			String body = a[4];
    		
    			Properties props = new Properties();
    			props.setProperty("mail.smtp.host", server);
    			
    			// Setup authentication, get session
    			Authenticator auth = new YahooAuth();
    						
    			Session session = Session.getDefaultInstance(props, auth);
    			Message message = new MimeMessage(session);
    			
    				try{
    					Address sender = new InternetAddress(from);
    					Address recipient = new InternetAddress(to);
    					
    					message.setFrom(sender);
    					message.setRecipient(Message.RecipientType.TO, recipient);
    					message.setSubject(subject);
    					message.setText(body);
    
    					Transport.send(message);
    					
    				}
    				catch(AddressException e) {
    					e.printStackTrace();
    				}	
    				catch(MessagingException e) {
    					e.printStackTrace();
    				}						
    	} 
    }
    
    
    class YahooAuth extends Authenticator {
      private static String username = "USER";
      private static String password = "PASSWORD";
     
      public YahooAuth() {}
      public PasswordAuthentication getPasswordAuthentication(){
       
        return new PasswordAuthentication(username,password);
      }
     
    }//YahooAuth
    Non va, mi da sempre errore:

    codice:
    damiano@damiano:~/lavoro/java/email$ java invioEmail smtp.mail.yahoo.it EMAIL@yahoo.it EMAIL@yahoo.it prova_oggetto prova_messaggio
    com.sun.mail.smtp.SMTPSendFailedException: 530 authentication required - for help go to http://help.yahoo.com/help/us/mail/pop/pop-11.html
    
            at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1333)
            at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:906)
            at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:535)
            at javax.mail.Transport.send0(Transport.java:151)
            at javax.mail.Transport.send(Transport.java:80)
            at invioEmail.main(invioEmail.java:43)
    damiano@damiano:~/lavoro/java/email$ javac invioEmail.java
    damiano@damiano:~/lavoro/java/email$ java invioEmail smtp.mail.yahoo.it damianoporta@yahoo.it damianoporta@yahoo.it prova_oggetto prova_messaggio
    com.sun.mail.smtp.SMTPSendFailedException: 530 authentication required - for help go to http://help.yahoo.com/help/us/mail/pop/pop-11.html
    
            at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1333)
            at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:906)
            at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:535)
            at javax.mail.Transport.send0(Transport.java:151)
            at javax.mail.Transport.send(Transport.java:80)
            at invioEmail.main(invioEmail.java:43)
    damiano@damiano:~/lavoro/java/email$

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Smanettando un po' sul forum della sun:

    codice:
    import javax.mail.*;
    import java.util.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    import java.io.*;
    
    
    public class javamaildemo {
      String host = "smtp.mail.yahoo.it"; //tuo smtp
      String from = "xyzabgd@yahoo.it"; //tuo indirizzo email
      String ToAddress = "destinatario@email.com"; //destinatario
      String user = "xyzabgd";
      String pass = "password";
      
      public javamaildemo() {
        try {
          //initialize the StringBuffer object within the try/catch loop
          StringBuffer sb = new StringBuffer( );
          
          //Get system properties
          Properties props = System.getProperties( );
        
          //Setup mail server
          props.put("mail.smtp.host", host);
          props.put("mail.debug", "true");
          props.put("mail.smtp.auth","true");
    
          //Get session
          Session session = Session.getDefaultInstance(props, null);
          session.setDebug(true);
          session.setPasswordAuthentication(new URLName("smtp",host,25,"INBOX",user,pass), new PasswordAuthentication(user,pass));
    
          //Define message
          MimeMessage msg = new MimeMessage(session);
          //Set the from address
          msg.setFrom(new InternetAddress(from));
          //Set the to address
          msg.addRecipient(Message.RecipientType.TO, new InternetAddress(ToAddress));
          //Set the subject
          msg.setSubject("Test mail using JavaMail APIs");
          //Set the text content for body
          sb.append("This is the 1st String line.\n\n");
          sb.append("This is the 2nd String line.\n\n");
          sb.append("This is the 3rd String line.\n\n");
          msg.setText(sb.toString( ));  
          //Send message
          Transport tr = session.getTransport("smtp");
          tr.connect(host, user, pass);
          msg.saveChanges(); // don't forget this
          tr.sendMessage(msg, msg.getAllRecipients());
          tr.close();
        }
        catch (MessagingException e) {
          System.out.println(e);
        }
      } 
      
      public static void main(String[] args) {
        javamaildemo jv = new javamaildemo();
      }
    }
    commenta la prop e session.setDebug se non vuoi vedere il log dei messaggi di debug.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    ti ringrazio enormemente!!!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    figurati, ho imparato anch'io qualcosa
    Ciao.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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 © 2025 vBulletin Solutions, Inc. All rights reserved.