Avatar billede skovborg Nybegynder
01. september 2001 - 23:21 Der er 5 kommentarer og
1 løsning

Send Mail ved hjælp af outlook

Hej Alle
Jeg skal til at lave en applet der kan sende en mail ved hjælp af klientens outlook... men jeg har ikke en ide om hvordan jeg får startet på dette problem... er der en der har en lille klasse til at ligge der kan løse mit problem eller er der en der kender et godt sted for info..

på forhånd tak
Morten Skovborg
Avatar billede apollo69 Nybegynder
02. september 2001 - 00:40 #1
Avatar billede skovborg Nybegynder
02. september 2001 - 01:14 #2
Ja det er rigtigt der er en applet der ser ud til at virke men det er nok mere selve koden der interessere mig.. sorry. da jeg skal arbejde videre på den.

med venlig hilsen
Morten skovborg
Avatar billede logical Nybegynder
02. september 2001 - 06:50 #3
Brug java mail api\'et. Det vil hjælpe dig med at sende mails.


Du skal inkludere javamail og java activation framework (Hent dem evt. fra http://www.javasoft.com/products/javamail og http://java.sun.com/products/javabeans/glasgow/jaf.html)

Her er en stump kode, der sender et simpelt brev:

String someStringIdentifyingMailHost = \"mail.cybercity.dk\"; <- eller whatever

Properties props = System.getProperties();
props.put(\"mail.smtp.host\",someStringIdentifyingMailHost);
Session session = Session.getInstance(props, null);

Message m = new MimeMessage(session);
m.setText(\"Hello\"); // eller m.setContent(\"Hello\", \"text/plain\");
m.setSubject(\"My first letter\");
Address address = new InternetAddress(\"president@whitehouse.gov\", \"George Bush\");
m.setFrom(address);
Address toAddress = new InternetAddress(\"vice.president@whitehouse.gov\");
Address ccAddress = new InternetAddress(\"first.lady@whitehouse.gov\");
m.addRecipient(Message.RecipientType.TO, toAddress);
m.addRecipient(Message.RecipientType.CC, ccAddress);

Transport trans = session.getTransport(\"smtp\");
trans.send(m);

Avatar billede skovborg Nybegynder
02. september 2001 - 18:35 #4
Hej Logical
Det er en meget pæn kode og næsten det jeg vil men kun næsten, for jeg vil gerne benytte outlook til at sende med, da jeg skal kunne se hvem der er sendt til på klienten og hvem der er kommet mail retur fra ved defekt mail adresse.

jeg skal med andre ord have styr på hvem der er sendt til og hvem der ikke har modtaget mail dette er ikke muligt hvis jeg benytter smtp.

Jeg SKAL bruge outlook, jeg ved det kan lade sig gøre hvis jeg bruger asp, hvilket jeg allerede har forsøgt mig lidt med, men det er jo federe at lave det i JAVA, ikke sandt.

Med venlig hilsen
Morten skovborg
Avatar billede logical Nybegynder
02. september 2001 - 20:09 #5
Mail retur afleveres jo stadig i din mailbox, så det er fuldstændigt uafhængigt af hvordan det er afsendt, idet breve bliver returneret i forhold til from adressen i brevet. Derfor kommer ikke modtagne mails retur uafhængigt af om man anvender standard smtp eller outlook-integration.

mht. integration til selve outlook, så er det rent properitært (hvilket du nok er klar over), så der skal du måske søge hos microsoft. De kan evt. have implementeret javax.mail (Som jo mest er interface definitioner) i forhold til en outlook.

Mht. afsendelse, så vil jeg dog foreslå at man anvender f.eks. en BCC hvor man også sender brevet til, så kan man samle brevene deri. Derved er afsendelsen frigjort fra din \"bookkeeping\".

Man kan også save en message v.hj.a.
m.writeTo(SomeOutputStream_eg_AFileOutputStream)

Hvis man bruger extension .eml vil outlook express kunne åbne den slags mails (Eftersom det er \"raw RFC822\" format).

Så det var bare nogle strøtanker, på alternativer.
Avatar billede skovborg Nybegynder
02. september 2001 - 22:39 #6
Jeg har fundet denne lille ting på msdn

import com.ms.com.*;   
//import msoutl85.*;  //In order to use Outlook Object Model
import msoutl9.*;

public class Class1
{
  public static void main(String[] args)
  {
    try
    {  // Start from the application
    _Application olApp = (_Application) new Application();
        // Get MAPI infostore
    _NameSpace mapiNS = olApp.GetNamespace(\"MAPI\");

    // Create a null Parameter for later use
    Variant nullParam = new Variant();
    nullParam.noParam();
   
    // Open the Outbox
    MAPIFolder outbox = (MAPIFolder)mapiNS.GetDefaultFolder(
                OlDefaultFolders.olFolderOutbox);
       
    // Create a new message
    _MailItem newMsg = (_MailItem)outbox.getItems().Add(nullParam);
       
    // Set the subject
    newMsg.setSubject(\"This is message from Jave!\");   
    // Set the body
    newMsg.setBody(\"How are you doing today!\");
           
    //Create an attachment, we need to do some preparation

        // Get the source for the attachment
    Variant source = new Variant();
        // TODO: you may change the file path
    source.putString(\"C:\\\\Autoexec.bat\");   
        // TODO: you may change the DisplayName
    Variant displayName = new Variant();
    displayName.putString(\"Autoexec.bat\");     
        // Specify the type of the attachment
    Variant type = new Variant();
    type.putInt(OlAttachmentType.olByValue);   
        // Decide where you want to put the attachment
    Variant position = new Variant();
    position.putFloat(1000);   
   
        // It is time to really create the attachment
    Attachment attachment = (Attachment) newMsg.getAttachments().Add(source, type, position, displayName);                                                                                                                             
       
    // Create a Recipient

    // TO DO: change to your recipient\'s name!
    Recipient recipient = (Recipient) newMsg.getRecipients().Add( \"Morten@skovborg.dk\");
        // Set type to the recipient                                         
    recipient.setType(OlMailRecipientType.olTo);    
    // Resolve the recipient
    recipient.getResolved();   
       
    // Send the new message
    newMsg.Send();   
           
    // Clean up
    olApp = null;
    mapiNS = null;
    outbox = null;
    newMsg = null;
    recipient = null;
    attachment = null;
    }
    catch(java.lang.Exception e)
    {
    System.out.println( \"Failed!\" );
    e.printStackTrace();
    }        
       
    System.out.println(\"Program is terminated\");
  }
}

her er linket til stedet :
http://support.microsoft.com/support/kb/articles/Q216/7/28.ASP?LN=EN-US&SD=gn&FR=0&qry=java%20outlook&rnk=9&src=DHCS_MSPSS_gn_SRCH&SPR=OUT

der skal dog rettes lidt i det da der på den linje i toppen hvor der står :    NameSpace mapiNS = olApp.GetNamespace(\"MAPI\");
skal stå :     _NameSpace mapiNS = olApp.GetNamespace(\"MAPI\");

men hvad kan man for vente af microsoft

vi ses og tak for hjælpen selv om det ikke var det jeg ledte efter men jeg har lært af det

Med venlig hilsen
Morten skovborg
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester