E-Mails versenden

  • Themenstarter Themenstarter Gerhard
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gerhard

Gast
Hallo!

Habe folgendes Problem:

Ich möchte gerne ein Programm schreiben, welches (ähnlich wie Outlook) meine E-mails von einem Exchange Server abruft und verschickt. Bin gerade dabei das Verschicken zu testen. Habe dazu mal das Forum durchsucht und bin darauf gestoßen, dass man einen exchange server wie einen smtp-server behandeln soll (?). hier mal mein code:

Code:
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;


public class Main
{
  public static void postMail( String recipient,
                               String subject,
                               String message, String from )
    throws MessagingException
  {
    Properties props = new Properties();
    props.put( "mail.smtp.host", "mail.java-tutor.com" );
    Session session = Session.getDefaultInstance( props );
    Message msg = new MimeMessage( session );
    InternetAddress addressFrom = new InternetAddress( from );
    msg.setFrom( addressFrom );
    InternetAddress addressTo = new InternetAddress( recipient );
    msg.setRecipient( Message.RecipientType.TO, addressTo );
    msg.setSubject( subject );
    msg.setContent( message, "text/plain" );
    Transport.send( msg );
  }
  public static void main( String[] args ) throws Exception
  {
    postMail( "gerhard.schrittesser@bbstveit.at",
              "test",
              "test geklappt",
              "gerhard.schrittesser@bbstveit.at");
  }
}

so. was muss ich jetzt aber anstelle von mail.smtp.host und mail.java-tutor.com schreiben?? oder funkt. das mit java und einem exchange server nicht??

vielen dank schon mal!!
liebe grüße
gerhard
 
der code is aus Java ist auch eine Insel dort werden auch die benötigten Vorbereitungen beschrieben. für mail.java-tutor.com müsste dann wahrscheinleich dein smtp-Server rein.
Grüße, motschow

edit: oh, stimmt ja, du brauchst nen exchange-server. aber versuch halt einfach mal die adresse von dem da rein zuschreiben
 
hallo!!

danke einmal für die antworten. ja ist richtig der code ist aus java ist auch eine insel. das hat meine suche ja ergeben. bin ja erst am testen. und der exchange server hat folgende adresse: rzsmail01.bbaustria.at. würde dann heißen ich schreibe folgendes:

Code:
props.put( "mail.smtp.host", "rzsmail01.bbaustria.at" );

und anstelle von mail.smtp.host? ich hab das buch leider nicht. deswegen kann ich das auch nicht nachlesen 😳

hoffe ihr könnt mir weiterhelfen!!!

VIELEN DANK SCHONMAL!!!

lg
gerhard
 
hab mich jetzt mal da durchglesen! Danke für den Link.
Allerdings konnte ich trotzdem nicht daraus schlau werden da ja das ganze auf smtp aufgebaut ist.
vielleicht kann mir ja jemand auf meine oben gestellte frage eine antwort geben, was ich da anstelle von "mail.smtp.host" eintragen soll.

weiters würd mich interessieren wie das mit der anmeldung am konto läuft?! dann bei uns melden wir uns am exchange server mit dem active directory konto an!?

vielleicht kennt von euch ja wer einen link wo die verbindung mittels java auf einen exchange server beschrieben ist?!

wäre super!!!

VIELEN LIEBEN DANK!!!!

mfg gerhard
 
Verbessert mich, wenn ich was Falsches sage, aber Exchange (MS Exchange server?) is doch eigendlich nur ein Mailserver während die E-Mails ja weitehin über das SMTP-Protokoll verschickt werden. Das heißt man muss da auch mail.smtp.host verwenden.
 
motschow hat gesagt.:
Verbessert mich, wenn ich was Falsches sage, aber Exchange (MS Exchange server?) is doch eigendlich nur ein Mailserver während die E-Mails ja weitehin über das SMTP-Protokoll verschickt werden. Das heißt man muss da auch mail.smtp.host verwenden.

100% korrekt

@Gerhard
Am besten du sieht bei deinem e-Mail-Client nach, was dort als SMTP-Server eingetragen ist. Bei Outlook findet man diese Einstellung unter: Extras/Konten/Eigenschaften/Server/Ausgangsserver-SMTP

Nimm den Namen des Postausgangsservers und setze diesen, in dein Programm ein.

Normalerweise sollte das reichen, außer Exchange will auch eine Anmeldung. Dann müsste bei den Eigenschaften das "Postaugsgangsserver erfordert Authentifizierung" angekreuzt sein. Wenn das so ist: schreib noch einmal.

Robert
 
millin�r hat gesagt.:
aber normalerweise brauch man doch ein passwort wie macht man dass dann?

Da behaupte ich einmal das Gegenteil: Für das Senden von e-Mails, brauchen die meisten SMTP-Server keine Anmeldung. Das Passwort braucht man nur für das Abrufen der e-Mails via POP3 oder IMAP.

Aber wenn du schon fragst, die Sun-Mail-API bietet mehrer Möglichkeiten an, hier eine:

Nach props.put( "mail.smtp.host", "mail.java-tutor.com" );
Code:
String protocol = "smtp";
props.put("mail." + protocol + ".auth", "true");

einf�gen, und die Zeile:

Code:
Transport.send(msg);

mit

Code:
Transport t = session.getTransport(protocol);
try {
     t.connect(username, password);
     t.sendMessage(msg, msg.getAllRecipients());
} finally {
     t.close();
}

ersetzen.

Weiterführende Infos gibt es noch in der Sun Mail FAQ.
 
robertpic71 hat gesagt.:
Da behaupte ich einmal das Gegenteil: Für das Senden von e-Mails, brauchen die meisten SMTP-Server keine Anmeldung. Das Passwort braucht man nur für das Abrufen der e-Mails via POP3 oder IMAP.

wo stehen denn solch weisheiten geschrieben?

smtp after pop funktioniert nur wenn man sich vorher per pop sich authentifiziert hat.

ansonsten *muss* eine authentifizierung via smtp auth ablaufen, wenn es kein open relay ist.
 
DP hat gesagt.:
robertpic71 hat gesagt.:
Da behaupte ich einmal das Gegenteil: Für das Senden von e-Mails, brauchen die meisten SMTP-Server keine Anmeldung....

wo stehen denn solch weisheiten geschrieben?

smtp after pop funktioniert nur wenn man sich vorher per pop sich authentifiziert hat.

ansonsten *muss* eine authentifizierung via smtp auth ablaufen, wenn es kein open relay ist.

>> wo stehen denn solch weisheiten geschrieben?
Das steht nirgends geschrieben - das sind meine Erfahrungen aus dem Arbeitsalltag. Aber stimmt schon, die Behauptung von oben ist so nicht ganz richtig, deshalb:

Für das Senden von e-Mails, brauchen die meisten SMTP-Server keine Anmeldung - wenn man aus dem Netzwerk des Providers sendet. Das betrifft jetzt die ganzen firmeninternen STMP-Server als auch die SMTP-Dienste der Internetprovider.

Da die Webmail-Anbieter (sowie gmx) kein eigenes Netzwerk haben benötigen diese immer eine Anmeldung.

Da meine EDIFACT-Workflow-Lösung im Firmenumfeld eingesetzt wird, stimmt mein Meistens also nicht unbedingt für die Allgemeinheit.. 😳
 
jau, dann ist ja alles bello.

die ganzen internen clients werden im mailserver selbst über die ip zum senden authorisiert.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben