Emailversand ohne Authentication

Naru84

Mitglied
Hallo,
ich hab da mal wieder eine Frage ^^
Also ich bin ja jetzt schon soweit, dass ich eine E-mail versenden kann, nur brauche ich dafür immer den Benutzernamen und das Passwort. Wenn eines von den beiden fehlt, gibt es eine Fehlermeldung, eigentlich ist das auch richtig, aber ich wollte das so haben. dass ich mir das aussuchen kann, mal gebe ich einen Benutzernamen und Passwort mit und mal auch nicht. Ist dass denn möglich?
Vielleicht habt ihr ein paar Tipps für mich ^^

Naru
 
Keine Ahnung. Ich kann kein Java. ;)

Aber vielleicht kann ich Dir einen Hinweis geben wenn Du mir Deinen aktuellen Code zeigst.
Hab lang genug in anderen Sprachen programmiert und grundsaetzlich was Ahnung vom Coden an sich zu haben.
 
okay, hier ist mein Code...
Code:
public MailSenden(String recipient, String subject, String message, 
       String from, String user, String password, String server) 
       throws MessagingException {
  Authenticator auth = null;

// Hier werden properties bezueglich der E-mail Servern geladen
  Properties props = new Properties();
  props.put("mail.smtp.host", server);

/* Zuerst wird geprueft, ob Passwort und user gegeben sind, wenn 
ja, wird der autenticator auth erstellt. Dort werden Passwort und 
Benutzername ueberprueft.*/
  if(user!=null && password !=null) {
        auth = new PopupAuthenticator(user, password);
        props.put("mail.smtp.auth","true");
  } else {
	System.out.println("kein Benutzername kein Passwort");
  }

  Session session = Session.getInstance(props, auth);

  Message msg = new MimeMessage( session );
  Multipart mp = new MimeMultipart();
  MimeBodyPart mbp1 = new MimeBodyPart();

// der Absender wird fuer die Mail mitgegeben 
  InternetAddress addressFrom = new InternetAddress( from );
  msg.setFrom( addressFrom );
    
// der Empfaenger wird fuer die Mail mitgegeben
  InternetAddress addressTo = new InternetAddress( recipient );
  msg.setRecipient( Message.RecipientType.TO, addressTo );
    
// der Betreff wird fuer die Mail mitgegeben
  msg.setSubject( subject );
    
/* message wird in mbp1 eingelesen mit dem Datentyp. In der 
Regel ist es wie hier ein reiner Text oder statt plain in html, da 
kann auch eine kleine Formatierung gemacht werden wie es 
fuer html ueblich ist*/
  mbp1.setContent(message,"text/plain");

  mp.addBodyPart(mbp1);
  msg.setContent(mp);

// Mail wird versendet
    Transport.send( msg );
}

public static void main( String args[] ) throws Exception {
//Strings müssen noch definiert werden
  String absender = "";
  String empfaenger = "";
  String betreff = "";
  String text = "";
  String user = "";
  String passwort = "";
  String server = "";

  new MailSenden (empfaenger, betreff, text, absender, user, 
                            passwort, server);
}

class PopupAuthenticator extends Authenticator {
    String username;
    String password;
    public PopupAuthenticator(String username,String password) {
        this.username=username;
        this.password=password;
    }
    public PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(username,password);
    }
  }
wie du siehst, hab ich zwar meinen Benutzernamen und Passwort dabei, aber ich wollte ein variables Programm schreiben, so dass je nach Server, ich auch variieren kann was den Benutzernamen und das Passwort angehen. Am Ende der public MailSenden wird es vielleicht verwirrend, da ich ursprünglich noch einen Datei-anhang mit versenden wollte. Vielleicht kannst du ja was damit anfangen...
 
Hmm, ich kann Dir leider nicht helfen. Sorry.

Aber die Verwirrung kann ich verstehen, denn ich hab mich selbst die letzten Tage damit rumgeschlagen eine Mail mit Anhaengen zu verschicken, jedoch mit PHP.
 
dann ist ja gut, dann bin ich ja nicht alleine ^^
Na ja, macht ja nichts, aber es war ja der Wille da gewesen ^^
 
Hi,

wenn Du keine authentification willst, dann übergib auch keine,
sprich setze in den properties folgendes:

props.put("mail.smtp.auth", "false");


gruss,

Torsten
 
Zurück