Mail senden über Outlook

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Mail senden über Outlook

Beitrag von Velindos »

Hallo,
möchte meine Mail aus meiner Datenbank erstellen und an Outlook übergeben.
Funktioniert nur zum Teil, es fehlt der Anhang und Cc.., auch die Formate im Nachrichten fehlen.

Code: Alles auswählen

EnableExplicit
;{ Constanten
;- Constanten
Enumeration
  #T_Mail_An
  #T_Mail_CC
  #T_Mail_Betreff
  #T_Mail_Nachricht
  #S_Mail_Betreff
  #T_Mail_Anhang
  #S_Mail_An
  #S_Mail_CC
  #S_Mail_Anhang
  #B_Ringbutton
  #T_DB_Mail
  #T_DB_Betreff
    #T_DB_CC
  #S_DB_CC
  #S_DB_Mail
  #S_DB_Betreff
  #B_DB_Senden
  #B_Mail_Senden
  #B_Mail_InfoMail
  #S_Mail_Nachricht
  #Editor_Window

  #Editor_StyleF
  #Editor_StyleY
  #Editor_StyleB
  #Editor_StyleI
  #Editor_StyleU
  #Editor_StyleFC
  #Editor_StyleBC
  #Editor_Number
  #Editor_AlignR
  #Editor_AlignC
  #Editor_AlignL
  
  #Editor_Menu
  #Editor_MenuNew
  #Editor_MenuOpen
  #Editor_MenuSave
  #Editor_MenuQuit
  
  #Editor_ImageFC
  #Editor_ImageBC
EndEnumeration

#CFM_BACKCOLOR    = $4000000
#SF_USECODEPAGE   = $20
#CP_UTF8      = 65001
;}
;{ Global
;- Global
Global LizenzWindows$ = "Beispiel"
Global Editor_FileName$ = ""
Global Editor_Pattern$ = "RTF (*.rtf)|*.rtf|Text (*.txt)|*.txt|Unicode (*.txt)|*.txt|UTF8 (*.utf8)|*.utf8"
Global sMailAdd.s
Global sRecipient.s
Global sMsg.s
Global sSubj.s
Global sAttachment.s
Global sCommand.s


;}
;{ Fonts
;- Fonts

;}
;{-Image Plugin
;-Images
UsePNGImageDecoder()
UsePNGImageEncoder()
;}
;{ Images
Enumeration
EndEnumeration
;}
;{ Included Images
DataSection
EndDataSection
CreateImage(#Editor_ImageFC,12,12)
CreateImage(#Editor_ImageBC,12,12)
;}
;{ Start Database deklaration
;- START
UseSQLiteDatabase()
InitNetwork()


;}
;{ CompilingSesion
;}








Procedure Editor_EnumFontProc(*lpelfe.LOGFONT , *lpntme.TEXTMETRIC , fontType , lParam)
  AddGadgetItem(#Editor_StyleF , -1 , PeekS(@*lpelfe\lfFaceName))
  ProcedureReturn 1
EndProcedure

Procedure Editor_StreamOutCallback(dwCookie , *pbBuff , cb , *pcb.Long)
  *pcb\l = WriteData(dwCookie , *pbBuff , cb)
  ProcedureReturn (Not *pcb\l)
EndProcedure

Procedure Editor_StreamInCallback(dwCookie , *pbBuff.l , cb , *pcb.Long)
  *pcb\l = ReadData(dwCookie , *pbBuff , cb)
  ProcedureReturn (Not *pcb\l)
EndProcedure

Procedure Editor_UpdateGadgets(editor)
  Protected cf.CHARFORMAT2
  Protected pf.PARAFORMAT2
  Protected fName$ , i
  
  cf\cbSize   = SizeOf(CHARFORMAT2)
  SendMessage_(GadgetID(editor) , #EM_GETCHARFORMAT , #SCF_SELECTION , cf)
  
  pf\cbSize   = SizeOf(PARAFORMAT2)
  SendMessage_(GadgetID(editor) , #EM_GETPARAFORMAT , 0 , pf)   
  
  If cf\dwMask   & #CFM_SIZE
    SetGadgetText(#Editor_StyleY , Str(cf\yHeight * 0.05))
  EndIf   
  If cf\dwMask   & #CFM_FACE
    fName$ = PeekS(@cf\szFaceName , 32)
    For i = 0 To CountGadgetItems(#Editor_StyleF) - 1
      If GetGadgetItemText(#Editor_StyleF , i) = fName$
        SetGadgetState(#Editor_StyleF , i)
        Break
      EndIf
    Next
  EndIf   
  If cf\dwEffects & #CFE_BOLD
    SetGadgetState(#Editor_StyleB , 1)
  Else
    SetGadgetState(#Editor_StyleB , 0)
  EndIf
  If cf\dwEffects & #CFE_ITALIC
    SetGadgetState(#Editor_StyleI , 1)
  Else
    SetGadgetState(#Editor_StyleI , 0)
  EndIf
  If cf\dwEffects & #CFE_UNDERLINE
    SetGadgetState(#Editor_StyleU , 1)
  Else
    SetGadgetState(#Editor_StyleU , 0)
  EndIf   
  If cf\crTextColor <> -1
    StartDrawing(ImageOutput(#Editor_ImageFC))
    Box(0,0,ImageWidth(#Editor_ImageFC),ImageHeight(#Editor_ImageFC), cf\crTextColor)
    StopDrawing()
    SetGadgetAttribute(#Editor_StyleFC , #PB_Button_Image , ImageID(#Editor_ImageFC))
  EndIf
  If cf\crBackColor <> -1
    StartDrawing(ImageOutput(#Editor_ImageBC))
    Box(0,0,ImageWidth(#Editor_ImageBC),ImageHeight(#Editor_ImageBC), cf\crBackColor)
    StopDrawing()
    SetGadgetAttribute(#Editor_StyleBC , #PB_Button_Image , ImageID(#Editor_ImageBC))
  EndIf
  If pf\dwMask & #PFM_ALIGNMENT
    SetGadgetState(#Editor_AlignR , 0)
    SetGadgetState(#Editor_AlignC , 0)
    SetGadgetState(#Editor_AlignL , 0)   
    Select pf\wAlignment
      Case #PFA_LEFT      : SetGadgetState(#Editor_AlignL , 1)
      Case #PFA_CENTER   : SetGadgetState(#Editor_AlignC , 1)
      Case #PFA_RIGHT      : SetGadgetState(#Editor_AlignR , 1)
    EndSelect
  EndIf
  If pf\dwMask & #PFM_NUMBERING
    Select pf\wNumbering
      Case 0            : SetGadgetState(#Editor_Number , 0)           
      Default         : SetGadgetState(#Editor_Number , 1)
        
    EndSelect
  EndIf   
  SetActiveGadget(editor)
EndProcedure

Procedure Editor_SetFontName(editor , fontName$)
  Protected cf.CHARFORMAT2
  If fontName$ <> ""
    cf\cbSize      = SizeOf(CHARFORMAT2)               
    cf\dwMask      = #CFM_FACE
    PokeS(@cf\szFaceName   , fontName$ , 32)
    SendMessage_(GadgetID(editor) , #EM_SETCHARFORMAT , #SCF_SELECTION , cf)
    Editor_UpdateGadgets(editor)
  EndIf
EndProcedure

Procedure Editor_SetFontHeight(editor , fontSize)   
  Protected cf.CHARFORMAT2
  If fontSize > 0
    cf\cbSize      = SizeOf(CHARFORMAT2)               
    cf\dwMask      = #CFM_SIZE
    cf\yHeight      = fontSize * 20.0
    SendMessage_(GadgetID(editor) , #EM_SETCHARFORMAT , #SCF_SELECTION , cf)
    Editor_UpdateGadgets(editor)
  EndIf   
EndProcedure

Procedure Editor_SetFontColor(editor , fontColor)
  Protected cf.CHARFORMAT2
  If fontColor <> -1     
    cf\cbSize      = SizeOf(CHARFORMAT2)               
    cf\dwMask      = #CFM_COLOR
    cf\crTextColor   = fontColor
    SendMessage_(GadgetID(editor) , #EM_SETCHARFORMAT , #SCF_SELECTION , cf)     
    Editor_UpdateGadgets(editor)
  EndIf
EndProcedure

Procedure Editor_SetBackColor(editor , backColor)
  Protected cf.CHARFORMAT2
  If backColor <> -1     
    cf\cbSize      = SizeOf(CHARFORMAT2)               
    cf\dwMask      = #CFM_BACKCOLOR
    cf\crBackColor   = backColor
    SendMessage_(GadgetID(editor) , #EM_SETCHARFORMAT , #SCF_SELECTION , cf)     
    Editor_UpdateGadgets(editor)
  EndIf
EndProcedure

Procedure Editor_SetFontStyle(editor , mask)
  Protected cf.CHARFORMAT2
  cf\cbSize         = SizeOf(CHARFORMAT2)               
  cf\dwMask         = mask
  cf\dwEffects      = 0
  If GetGadgetState(#Editor_StyleB)
    cf\dwEffects   | #CFE_BOLD
  EndIf
  If GetGadgetState(#Editor_StyleI)
    cf\dwEffects   | #CFE_ITALIC
  EndIf
  If GetGadgetState(#Editor_StyleU)
    cf\dwEffects   | #CFE_UNDERLINE
  EndIf
  SendMessage_(GadgetID(editor) , #EM_SETCHARFORMAT , #SCF_SELECTION , cf)               
  Editor_UpdateGadgets(editor)
EndProcedure

Procedure Editor_SetAlignment(editor , alignment)
  Protected pf.PARAFORMAT2
  pf\cbSize         = SizeOf(PARAFORMAT2)               
  pf\dwMask         = #PFM_ALIGNMENT
  pf\wAlignment      = alignment
  SendMessage_(GadgetID(editor) , #EM_SETPARAFORMAT , 0 , pf)
  Editor_UpdateGadgets(editor)
EndProcedure

Procedure Editor_SetNumbering(editor , format)
  Protected pf.PARAFORMAT2
  pf\cbSize         = SizeOf(PARAFORMAT2)               
  pf\dwMask         = #PFM_NUMBERING | #PFM_NUMBERINGTAB
  pf\wNumbering      = format
  pf\wNumberingTab   = 500
  SendMessage_(GadgetID(editor) , #EM_SETPARAFORMAT , 0 , pf)
  Editor_UpdateGadgets(editor)
EndProcedure

Procedure Editor_Quit()
  End   
EndProcedure

Procedure Editor_Callback(hwnd , msg , wparam , lparam)
  Protected *nmhdr.NMHDR   
  If msg = #WM_NOTIFY
    *nmhdr = lparam
    If *nmhdr\code = #EN_SELCHANGE
      Editor_UpdateGadgets(*nmhdr\idFrom)
    EndIf      
  EndIf   
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

Procedure Editor_Initialize(editor , fontName$ = "Arial" , fontHeight = 10 , fontStyle = 0 , fontColor = #Black , backColor = #White)
  Protected lf.LOGFONT , y
  
  ClearGadgetItems(editor)
  ClearGadgetItems(#Editor_StyleF)
  ClearGadgetItems(#Editor_StyleY)
  
  EnumFontFamiliesEx_(GetDC_(GadgetID(editor)) , lf , @Editor_EnumFontProc() , 0 , 0)
  
  For y = 1 To 100
    AddGadgetItem(#Editor_StyleY , -1 , Str(y))
  Next   
  
  If fontStyle & #CFM_BOLD
    SetGadgetState(#Editor_StyleB , 1)
  Else
    SetGadgetState(#Editor_StyleB , 0)
  EndIf   
  If fontStyle & #CFM_ITALIC
    SetGadgetState(#Editor_StyleI , 1)
  Else
    SetGadgetState(#Editor_StyleI , 0)
  EndIf   
  If fontStyle & #CFM_UNDERLINE
    SetGadgetState(#Editor_StyleU , 1)
  Else
    SetGadgetState(#Editor_StyleU , 0)
  EndIf   
  Editor_SetFontStyle   (editor , fontStyle)   
  Editor_SetFontName   (editor , fontName$)
  Editor_SetFontHeight(editor , fontHeight)
  Editor_SetFontColor   (editor , fontColor)
  Editor_SetBackColor   (editor , backColor)
  
  SendMessage_(GadgetID(editor) , #EM_SETEVENTMASK , 0 , #ENM_SELCHANGE)
  SetWindowCallback(@Editor_Callback())
EndProcedure

Procedure Editor_Open(editor , fileName$)
  Protected es.EDITSTREAM , file
  file = ReadFile(#PB_Any , fileName$)
  If IsFile(file)
    Editor_Initialize(editor)
    es\pfnCallback   = @Editor_StreamInCallback()
    es\dwCookie      = file
    Select SelectedFilePattern()
      Case 0 : SendMessage_(GadgetID(editor) , #EM_STREAMIN , #SF_RTF , es)
      Case 1 : SendMessage_(GadgetID(editor) , #EM_STREAMIN , #SF_TEXT , es)
      Case 2 : SendMessage_(GadgetID(editor) , #EM_STREAMIN , #SF_UNICODE | #SF_TEXT , es)
      Case 3 : SendMessage_(GadgetID(editor) , #EM_STREAMIN , (#CP_UTF8 << 16) | #SF_USECODEPAGE | #SF_TEXT , es)            
    EndSelect      
    CloseFile(file)
    Editor_FileName$ = fileName$
  EndIf
EndProcedure

Procedure Editor_Save(editor , fileName$)
  Protected es.EDITSTREAM , file
  file = CreateFile(#PB_Any , fileName$)
  If IsFile(file)      
    es\pfnCallback   = @Editor_StreamOutCallback()
    es\dwCookie      = file      
    Select SelectedFilePattern()
      Case 0 : SendMessage_(GadgetID(editor) , #EM_STREAMOUT , #SF_RTF , es)
      Case 1 : SendMessage_(GadgetID(editor) , #EM_STREAMOUT , #SF_TEXT , es)
      Case 2 : SendMessage_(GadgetID(editor) , #EM_STREAMOUT , #SF_UNICODE | #SF_TEXT , es)
      Case 3 : SendMessage_(GadgetID(editor) , #EM_STREAMOUT , (#CP_UTF8 << 16) | #SF_USECODEPAGE | #SF_TEXT , es)            
    EndSelect      
    CloseFile(file)
    Editor_FileName$ = fileName$
  EndIf
EndProcedure
Procedure OutlookSenden()
  ;sMailAdd.s = "Info@MeinMail.de"
  ;sRecipient.s = "Info@CopyMail.de"
  ;sMsg.s  = "Hallo, das ist eine Mail!"
  ;sSubj.s = "Das ist eine Überschrift"
  ;sAttachment.s = "C:\ABC.TXT"
  sCommand.s = "mailto:" +  sMailAdd + "&subject="+ sSubj + "&body="+sMsg + "&Attach=" + Chr(34) + sAttachment + Chr(34) + sRecipient + Chr(34)
  RunProgram(sCommand)
EndProcedure

CreateImage(#Editor_ImageFC,12,12)
CreateImage(#Editor_ImageBC,12,12)

;{ MainWindow
Procedure MainWindow()
  OpenWindow(#Editor_Window,683, 0, 667, 732,"Outlook Beispiel" , #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget)
  
  CreateMenu(#Editor_Menu , WindowID(#Editor_Window))
  MenuTitle("Datei")
  MenuItem(#Editor_MenuNew    , "Neu")
  MenuItem(#Editor_MenuOpen   , "Öffnen")
  MenuItem(#Editor_MenuSave   , "Speichern")
  MenuBar()
  MenuItem(#Editor_MenuQuit    , "Beenden")
  
  ButtonGadget(#B_Ringbutton, 0, 0, 667, 30, "")
  
  ButtonGadget(#B_Mail_Senden, 380, 70, 60, 20, "Send")
  ButtonGadget(#B_Mail_InfoMail, 450, 70, 50, 20, "InfoMail")
  
  TextGadget(#T_Mail_An, 20, 70, 20, 20, "An...")
  StringGadget(#S_Mail_An, 80, 70, 290, 20, "")
  
  TextGadget(#T_Mail_CC, 20, 100, 30, 20, "Cc...")
  StringGadget(#S_Mail_CC, 80, 100, 500, 20, "")
  
  TextGadget(#T_Mail_Betreff, 20, 160, 40, 20, "Betreff ...")
  StringGadget(#S_Mail_Betreff, 80, 160, 500, 20, "")
  
  TextGadget(#T_Mail_Anhang, 20, 130, 50, 20, "Anhang ...")
  StringGadget(#S_Mail_Anhang, 80, 130, 500, 20, "")
  
  TextGadget(#T_Mail_Nachricht, 20, 185, 60, 20, "Nachricht")
  ;StringGadget(#S_Mail_Nachricht, 80, 185, 500, 20, "")
  
  ButtonGadget(#B_DB_Senden, 390, 620, 160, 20, "Mail Vorschlagen")
  
  TextGadget(#T_DB_Mail, 10, 620, 70, 20, "Mailadresse")
  StringGadget(#S_DB_Mail, 80, 620, 290, 20, "")
  TextGadget(#T_DB_Betreff, 10, 650, 50, 20, "Betreff")
  StringGadget(#S_DB_Betreff, 80, 650, 290, 20, "")
  TextGadget(#T_DB_CC, 10, 680, 70, 20, "Kopie an ..")
  StringGadget(#S_DB_CC, 80, 680, 290, 20, "")
  
  ComboBoxGadget      (#Editor_StyleF   ,  5,  215,140, 20)
  ComboBoxGadget      (#Editor_StyleY   ,155,  215, 50, 20)
  ButtonGadget      (#Editor_StyleB   ,215,  215, 20, 20 , "B"   ,#PB_Button_Toggle)
  ButtonGadget      (#Editor_StyleI   ,240,  215, 20, 20 , "I"   ,#PB_Button_Toggle)
  ButtonGadget      (#Editor_StyleU   ,265,  215, 20, 20 , "U"   ,#PB_Button_Toggle)
  ButtonGadget      (#Editor_AlignL   ,305,  215, 20, 20 , "<"   ,#PB_Button_Toggle)
  ButtonGadget      (#Editor_AlignC   ,330,  215, 20, 20 , "-"   ,#PB_Button_Toggle)
  ButtonGadget      (#Editor_AlignR   ,355,  215, 20, 20 , ">"   ,#PB_Button_Toggle)
  ButtonGadget      (#Editor_Number   ,395,  215, 20, 20 , "o"   ,#PB_Button_Toggle)
  ButtonImageGadget   (#Editor_StyleFC  ,435,  215, 20, 20 , ImageID(#Editor_ImageFC))
  ButtonImageGadget   (#Editor_StyleBC  ,455,  215, 20, 20 , ImageID(#Editor_ImageBC))
  EditorGadget      (#S_Mail_Nachricht, 5, 240,657,322)
  
EndProcedure
;} 

;{-MainWindowInit
;-MainWindowInit

MainWindow()
Editor_Initialize(#S_Mail_Nachricht)
SetGadgetText(#S_DB_Mail,"info@zielmail.com")
SetGadgetText(#S_DB_CC,"info@kopieanmail.com")
SetGadgetText(#S_DB_Betreff,"Das ist ein Testmail")
;OutlookSenden()

;} 
;{- Event Define
Define EventID, Gadget, Event
;} 
;{- Event Repeat
Repeat   
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow         
      Editor_Quit()
    Case #PB_Event_SizeWindow
      ;ResizeGadget(#S_Mail_Nachricht , #PB_Ignore,#PB_Ignore , WindowWidth(#Editor_Window) - 10 , WindowHeight(#Editor_Window) - 155)
    Case #PB_Event_Gadget         
      Select EventGadget()
        Case #Editor_StyleF
          Editor_SetFontName(#S_Mail_Nachricht , GetGadgetText(#Editor_StyleF))
        Case #Editor_StyleY               
          Editor_SetFontHeight(#S_Mail_Nachricht , Val(GetGadgetText(#Editor_StyleY)))
        Case #Editor_StyleB
          Editor_SetFontStyle(#S_Mail_Nachricht , #CFM_BOLD)
        Case #Editor_StyleI
          Editor_SetFontStyle(#S_Mail_Nachricht , #CFM_ITALIC)
        Case #Editor_StyleU
          Editor_SetFontStyle(#S_Mail_Nachricht , #CFM_UNDERLINE)
        Case #Editor_StyleFC
          Editor_SetFontColor(#S_Mail_Nachricht , ColorRequester())
        Case #Editor_StyleBC
          Editor_SetBackColor(#S_Mail_Nachricht , ColorRequester()) 
        Case #Editor_Number
          Editor_SetNumbering(#S_Mail_Nachricht , GetGadgetState(#Editor_Number))
        Case #Editor_AlignL
          Editor_SetAlignment(#S_Mail_Nachricht , #PFA_LEFT)
        Case #Editor_AlignC
          Editor_SetAlignment(#S_Mail_Nachricht , #PFA_CENTER)
        Case #Editor_AlignR
          Editor_SetAlignment(#S_Mail_Nachricht , #PFA_RIGHT)
          
        Case #B_DB_Senden
          SetGadgetText (#S_Mail_An,GetGadgetText(#S_DB_Mail))
          SetGadgetText (#S_Mail_Betreff,GetGadgetText(#S_DB_Betreff))
          SetGadgetText (#S_Mail_CC,GetGadgetText(#S_DB_CC))
          SetGadgetText(#S_Mail_Anhang,"Info.txt")
          
          
        Case #B_Mail_Senden
          sMailAdd.s =GetGadgetText(#S_Mail_An)
         sRecipient.s = GetGadgetText(#S_Mail_CC);
          sSubj.s =GetGadgetText(#S_Mail_Betreff)
          sAttachment.s =GetGadgetText(#S_Mail_Anhang)
          sMsg.s =GetGadgetText(#S_Mail_Nachricht)
          OutlookSenden()
          
      EndSelect
      
    Case #PB_Event_Menu
      Select EventMenu()
        Case #Editor_MenuNew
          ClearGadgetItems(#S_Mail_Nachricht)
        Case #Editor_MenuOpen
          Editor_Open(#S_Mail_Nachricht , OpenFileRequester("" , Editor_FileName$ , Editor_Pattern$ , SelectedFilePattern()))
        Case #Editor_MenuSave
          Editor_Save(#S_Mail_Nachricht , SaveFileRequester("" , Editor_FileName$ , Editor_Pattern$ , SelectedFilePattern()))
        Case #Editor_MenuQuit
          Editor_Quit()
      EndSelect         
    Case #PB_Event_Menu
      Select EventMenu()
        Case #Editor_MenuNew
      EndSelect        
      ;-Case Gadget
    Case #PB_Event_CloseWindow:Break
      Select EventID 
      EndSelect
      ;OutlookSenden()
      ;-Case Drag & Drop
    Case #PB_Event_GadgetDrop
      Select EventGadget()
      EndSelect 
      ;-Case Menue
    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect
  EndSelect      
ForEver
;}
Kann jemand helfen?
Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Mail senden über Outlook

Beitrag von bobobo »

Wennste schon sowas wie einen MailClient zum Versenden schreibst kannst Du doch auch gleich über den versenden
gnozals Libs hier Pure_SMTP_... hilft da echt weiter und Du kannst Outlook dafür in die Tonne hauen.


Laut RFC ist ein Anhang per Kommandozeile glaub ich gar nicht definiert.

habe aber auch das folgende in Google "gefunden"
<a href='mailto:name@domain.com?Subject=SubjTxt&Body=Bod_Txt&Attachment=""C:\file.txt"" '>

die Doppelten Anführungsstriche sind wohl Pflicht

Vermutlich schert sich MS aml wieder einen Dreck um Spezifikationen..

wenns geht ist es auch egal (bei mir geht es NICHT)

und formatierte Nachrichten sind imo HTML-Seiten. Dabei sollte man immer zwei
Versionen (ein unformatierte und eine MHTL-formatierte)verschicken und entsprechend
in der Mail kennzeichen (siehe ftp://ftp.rfc-editor.org/in-notes/rfc2368.txt)
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Mail senden über Outlook

Beitrag von Velindos »

Hallo bobobo,
danke für deinen Tip, habe folgendes daraus gemacht

Code: Alles auswählen

  sCommand.s = "mailto:" +  sMailAdd + "&cc="+  sRecipient  + "&subject="+ sSubj + "&body="+sMsg + "&Attachment=" + "'D:\mail.txt'" +Chr(34) 
bringt aber auch nicht den Erfolg. Es erscheint kein Anhang, obwohl Outlook ordentlich aufgerufen wird!

Die Sache mit CC ist gelöst(siehe "&cc="), diese erscheint im Outlook Mail ordentlich.

Hat jemand eine Ahnung warum er bei der Übergabe an Outlook, das Bild nicht mitgibt, lässt er einfach aus, obwohl es ein .RTF Dokument ist!

Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Mail senden über Outlook

Beitrag von bobobo »

Anhänge werden per mailto gerne mal NICHT genommen u.a.auch weil es ein Sicherheits-Ding
sein könnte.

siehe die o.a. RFC .. mailto unterstützt das so gar nicht

und nun nochmal mein Verweis auf die gnozal-libs
http://gnozal.ucoz.com/
diese werden gut gepflegt ..weiteres findest du im englischen forum
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Mail senden über Outlook

Beitrag von HeX0R »

Was ist denn mit PBs hausinternen Mail-Befehlen.
Taugen die nix? (Habe mich damit noch nicht befasst)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Mail senden über Outlook

Beitrag von ts-soft »

HeX0R hat geschrieben:Was ist denn mit PBs hausinternen Mail-Befehlen.
Taugen die nix? (Habe mich damit noch nicht befasst)
Doch, für SMTP-Server, die keine Authentisierung benötigen, also fast keinen :mrgreen:
Bei Telekom DSL-Anschlüssen, wo die Authentisierung zum Telekom Mail automatisch
erfolgt oder bei eigenen Mail-Servern könnte es funktionieren.

IMHO im Moment ziemlich sinnlos diese Lib.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Mail senden über Outlook

Beitrag von Nino »

bobobo hat geschrieben:Laut RFC ist ein Anhang per Kommandozeile glaub ich gar nicht definiert.
Genau. Technisch gesehen ist ein Anhang Teil des Mail-Body. Den Body müsste man sich daher vor dem Versenden selbst "zusammenbasteln" (incl. der korrekten Kennzeichnung von Anhängen sowie der korrekten Behandlung formatierter MIME-Parts, die Du auch schon angesprochen hast).

Dafür sind diese mailto-URLs aber gar nicht gedacht:
RFC 2368 hat geschrieben:The "body" hname should contain the content for the first text/plain body part of the message. The mailto URL is primarily intended for generation of short text messages that are actually the content of automatic processing (such as "subscribe" messages for mailing lists), not general MIME bodies.
Also sollte man sich nicht wundern, wenn es dabei (je nach verwendetem Browser und Mailprogramm) z.B. mit Anhängen Probleme gibt.
bobobo hat geschrieben:Wennste schon sowas wie einen MailClient zum Versenden schreibst kannst Du doch auch gleich über den versenden
gnozals Libs hier Pure_SMTP_... hilft da echt weiter und Du kannst Outlook dafür in die Tonne hauen.
Ich selbst habe Pure_SMTP noch nicht benutzt, aber das ist ja wohl seit langem gut etabliert.
Außerdem hat hier im Forum vor einiger Zeit jemand ein komplettes Mailprogramm im Quelltext veröffentlicht.

In Bezug auf PBs eigene Mail-Lib:
ts-soft hat geschrieben:IMHO im Moment ziemlich sinnlos diese Lib.
Das kann man beim besten Willen leider kaum anders sagen.

Grüße, Nino
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Mail senden über Outlook

Beitrag von rolaf »

Nino hat geschrieben:Außerdem hat hier im Forum vor einiger Zeit jemand ein komplettes Mailprogramm im Quelltext veröffentlicht.
http://www.purebasic.fr/german/viewtopi ... =8&t=23097 :allright:
Zuletzt geändert von rolaf am 17.02.2012 18:21, insgesamt 1-mal geändert.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Mail senden über Outlook

Beitrag von HeX0R »

rolaf hat geschrieben:
Nino hat geschrieben:Außerdem hat hier im Forum vor einiger Zeit jemand ein komplettes Mailprogramm im Quelltext veröffentlicht.
http://www.purebasic.fr/german/viewtopi ... =8&t=23097 :allright:
Das mit den Links posten üben wir noch ;)
http://www.purebasic.fr/german/viewtopi ... =8&t=23097
Benutzeravatar
dige
Beiträge: 1239
Registriert: 08.09.2004 08:53

Re: Mail senden über Outlook

Beitrag von dige »

Eigentlich soll die Email doch nur an Outlook übergeben werden, oder nicht?
Das geht doch prima mit dem COMate..

Suche mal in den Foren nach folgenden Stichwort:

Code: Alles auswählen

COMate_CreateObject("Outlook.Application")
"Papa, ich laufe schneller - dann ist es nicht so weit."
Antworten