22. oktober 2002 - 21:59Der er
36 kommentarer og 1 løsning
Afsendelse af emails UDEN at Outlook vil have bekræftelse
Hej
Når jeg sender emails via mit program, kommer Outlook og beder om en bekræftelse på, at det der i orden. Det er selvfølgelig hensigstmæssigt meget ofte, men jeg skal have en ubemandet maskine til at sende en email når der f.eks. kommer en bestemt post i en database. Det skal altså ske HELT automatisk, helst via en Outlook 2000 profil, men ikke nødvendigvis noget krav.
Det der så vidt jeg ved er problemet er, at nyere versioner af Outlook ikke tillader 'ubekræftede' anvendelser af Outlook's objektmodel fra andre programmer, nok mest fordi Micro$oft er blevet trætte af e-n-d-n-u en negativ omtale af den-ene-eller-anden virus, der spreder sig gennem Outlook. Anbefaling: Brug en fornuftig mail-komponent, ikke Outlook, til automatisk mail-afsendelse.
Bruger du mapi kald så bruger den dit standard mail prog...... Så kan du jo prøve dig frem, et bud kunne være at installere eudora.....
Men du kan vel også installere en smtp server (er med i 2k) og maile via den, så skal den ikke bekræftes, du kan måske endda bruge sådan noget som JMail.......den ved jeg kører på en smtp server.........men mon ikke man kan det med enten MAPI eller et andet API kald.......
Addressing The format of SMTP e-mail addresses is defined in RFC 822. MAPI components should handle any address that complies with that standard. However, there is a particular form of RFC 822 address that best encodes MAPI addresses:
display-name <email-address>
The angle brackets are included as literals. Blanks are common in display names; they need not be quoted. A typical address might look like this one, which belongs to one of the coauthors of RFC 1521:
Nathaniel Borenstein <nsb@bellcore.com>
If the display name contains characters that have special meaning in SMTP addresses, such as < or @, the entire display name should be quoted using double quotes. On outbound mail, if the total length of the e-mail address plus display name exceeds 255 characters, the display name should be dropped.
The parts of an SMTP address map into MAPI properties as follows:
SMTP address component MAPI property display-name for all recipients PR_DISPLAY_NAME display-name for From field PR_SENDER_NAME display-name for Sender field PR_SENT_REPRESENTING_NAME email-address PR_EMAIL_ADDRESS implicit, always "SMTP" PR_ADDRTYPE
If there is no display name for an address on inbound mail, the entire e-mail address should be used instead. The address type is always SMTP.
Recipient properties are taken from the MAPI message's recipient table; sender properties are taken from the message itself.
Følgende kode sender mail fra dit standard mail prog, men efter det jeg kunne læse i det ovenstående så kan man bruge smtp direkte til det.....kigger lige lidt vidre......
Det med mapi kræver åbenbart et mail prog til at lave den connection til smtp serveren for en, men det kan så bruges til at hente mail og læse mail osv. :O)
Jeg synes der bliver skrevet en del uden den store substans. F.eks. forstår jeg ikke hvad jeg skulle have ud af tubbers kommentar 23:52?. Jeg har selv hele tiden været bekendt med at sikringen er noget nyt. Jeg har dog ikke være klar over, om det er kommet i forbindelse med XP-versionen eller i forbindelse med programopdateringer. Jeg har nu afprøvet nedenstående kode på en Outlook version 2000. Her virker afsendelsen HELT uden involvering af brugeren. Det ville være det korte konkrete svar jeg egentlig søgte. Jeg vil dog give pointene til tubber for en god indsats, men ram sømmet næste gang...
Sub SendBesked()
Dim ObjOutlook As Outlook.Application Dim ObjOutLookMsg As Outlook.MailItem Dim ObjOutLookRecip As Outlook.Recipient
Set ObjOutlook = CreateObject("Outlook.application") Set ObjOutLookMsg = ObjOutlook.CreateItem(olMailItem)
With ObjOutLookMsg Set ObjOutLookRecip = .Recipients.Add("Torben@soelbaekdata.dk") ObjOutLookRecip.Type = olTo
.Subject = "Dette er en test" .Body = "Sendt som Vigtig" .Importance = olImportanceHigh .Save .Send End With
Kan sættes ind i et modul Der skal sætte hak i Microsoft Outlook 9.0 under Tools -> References Metoden modtager ingen parametre, men det er klart at i den færdige løsning vil man modtage ting som f.eks. modtager, emne og body.
Du kan også sætte det ind i en knap.....eller hvor du ellers har lyst......
Men det er smart som Torben skriver med et modul, og så kalde det.... Så er det nemt at kalde forskellige steder fra i dit program, og det er også nemt at bruge i andre programmer......
Torben: Takker for points - Troede faktisk det var løsningen, har selv brugt det jeg har sendt - uden den spurgte om lov, men nu kører jeg OfficeXP og den spørger ligepludselig.....
Så nu skal jeg teste hvordan din kode virker med OutlookXP :O)
Med XP spørger den. Jeg har endda prøvet at tage MSOUTL9.OLB og referere til den (den er fra outlook 2000), men det gør ingen forskel. Der bliver spurgt i XP.
Mon ikke også det bare er et spg om at finde frem til hvordan.....
Jeg ved at hvis man har installeret office2k, men have Access97 skal man fjerne en skrifttype som hedder hatten.ttf - ellers kan du ikke installere access97 efter du har installeret office2k (kan ikke huske om det var fordi jeg havde brug for begge access versioner)....
Jeg har sådan en ting der gør min Outlook minimere til systray, den blokere ikke scriptfiler, den fjerner MSN integrationen og den viser altid BCC feltet.......
Det kan jo være der er en anden tweak der gør man kan undgå den spørger om lov til at bruge office til at sende mail.......
mht til Access-versioner: Jeg har på min maskine installeret access fra følgende versioner: office 95, office 97, og office xp. Den fil du omtaler er en måde at rette problemet på, hvis man får at vide at der ikke er licens på maskinen. Microsoft har også lavet en fil man kan hente og køre, der også løser problemet.
Jeg kender intet til tweaks. Hvor er der info/download om disse?
ja det er bare kør den igen, den ene har en du kan trykke på der laver outlook defaults, den anden flytter du bare de radiobuttons tilbage som du har haft flyttet......
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.