Microsoft Excel

Herbers Excel/VBA-Archiv

Mail mit Anhang aus Outlook-Express

Betrifft: Mail mit Anhang aus Outlook-Express von: Bernhard Ebermann
Geschrieben am: 12.08.2004 13:51:34

Hallo Leute,

ich hatte lange nach einer Möglichkeit gesucht, Mails mit Anhang, unabhängig vom installierten Mailsystem zu versenden.
Siehe hierzu: https://www.herber.de/forum/index.htm?https://www.herber.de/forum/archiv/464to468/t466319.htm#

Nachdem dieses scheinbar nicht möglich ist, muss ich mich auf Outlook-Express festlegen.
Es gibt in der Recherche mengenweise Beispiele zu diesem Thema, die sich aber alle auf Outlook beziehen.
Ich suche nun nach einer Möglichkeit Mails mit xls-Anhang über Outlook-Express zu versenden.
Ich schreibe in VBA zwar unter Office 97, jedoch soll das Ganze natürlich auch unter Office 2000 lauffähig sein.

Weis jemand Rat hierzu.

Gruss
Bernhard

  


Betrifft: AW: Mail mit Anhang aus Outlook-Express von: Nepumuk
Geschrieben am: 12.08.2004 18:28:04

Hallo Bernhard,
folgenden Code habe ich irgendwo mal aufgeschnappt:


Private Declare Function ShellExecute Lib "Shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As LongByVal lpOperation As String, _
ByVal lpFile As StringByVal lpParameters As StringByVal lpDirectory As String, _
ByVal nShowCmd As LongAs Long

Sub Mail_Text_in_Body_2()
'Example for Outlook Express with API call
'In Excel 2002 I can use around 1800 characters
    Dim msg As String, URL As String
    Dim Recipient As String, Subj As String
    Dim Recipientcc As String, Recipientbcc As String
    Dim cell As Range
    Recipient = "a@b.de"
    Recipientcc = ""
    Recipientbcc = ""
    'You can use a cell value also like this
    'Recipient = Sheets("mysheet").Range("A1").Value
    Subj = "Testbodymail"
    'Subj = Sheets("mysheet").Range("A2").Value
    msg = "Dear customer" & vbNewLine & vbNewLine
    For Each cell In Sheets("Tabelle1").Range("A1:A5")
        msg = msg & vbNewLine & cell
    Next cell
    msg = WorksheetFunction.Substitute(msg, vbNewLine, "%0D%0A")
    'If you have hard returns in one of your cells you also need this line (Tip from Keepitcool)
    msg = WorksheetFunction.Substitute(msg, vbLf, "%0D%0A")
    URL = "mailto:" & Recipient & "?cc=" & Recipientcc & "&bcc=" & Recipientbcc _
        & "&subject=" & Subj & "&body=" & msg
    ShellExecute 0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus
    Application.Wait (Now + TimeValue("0:00:4"))
    SendKeys "%s"
End Sub

Sub Mail_Text_in_Body()
'Example for Outlook Express
'In Excel 2002 I can use around 600-700 characters
    Dim msg As String, cell As Range
    Dim Recipient As String, Subj As String, HLink As String
    Dim Recipientcc As String, Recipientbcc As String
    Recipient = "a@b.de"
    Recipientcc = ""
    Recipientbcc = ""
    'You can use a cell value also like this
    'Recipient = Sheets("mysheet").Range("A1").Value
    Subj = "Testbodymail"
    'Subj = Sheets("mysheet").Range("A2").Value
    msg = "Dear customer" & vbNewLine & vbNewLine
    For Each cell In Sheets("Tabelle1").Range("a1:a5")
        msg = msg & vbNewLine & cell
    Next cell
    msg = WorksheetFunction.Substitute(msg, vbNewLine, "%0D%0A")
    ''If you have hard returns in one of your cells you also need this line (Tip from Keepitcool)
    msg = WorksheetFunction.Substitute(msg, vbLf, "%0D%0A")
    HLink = "mailto:" & Recipient & "?" & "cc=" & Recipientcc & "&" & "bcc=" & Recipientbcc & "&"
    HLink = HLink & "subject=" & Subj & "&"
    HLink = HLink & "body=" & msg
    ActiveWorkbook.FollowHyperlink (HLink)
    Application.Wait (Now + TimeValue("0:00:4"))
    SendKeys "%s"
End Sub


Gruß
Nepumuk


  


Betrifft: AW: Mail mit Anhang aus Outlook-Express von: Bernhard Ebermann
Geschrieben am: 12.08.2004 20:31:25

Hallo Nepumuk,

es hat ein wenig gedauert mit meiner Antwort, da ich ja erst alles ausprobieren musste.
Nun denn, das funktioniert ja soweit schon ganz gut.
Allerdings ist die Übertragungsmenge der Zeichen zu gering, um grössere Seiteninhalte zu versenden.
Es wird dann einfach ohne Fehlermeldung abgearbeitet, ohne jedoch die Mail zu generieren.

Ich will/muss aber eine ganze xls versenden, was hiermit nicht geht.
Ich muss aber auch sagen, dass ich nicht in der Lage bin, es dahingehend umzustellen, wenn es denn überhaupt geht.

Gruss
Bernhard


  


Betrifft: AW: Mail mit Anhang aus Outlook-Express von: Nepumuk
Geschrieben am: 12.08.2004 20:50:53

Hallo Bernhard,
das Problem mit Outlook Express ist, dass es nicht in das Objektmodell von Office eingebunden wurde. Die einzige Möglichkeit besteht in der Anwendung der Sendkeys - Methode, welche aber sehr unsicher ist. Da kann ich dir leider nicht weiterhelfen.
Sorry
Nepumuk


  


Betrifft: AW: Mail mit Anhang aus Outlook-Express von: Bernhard Ebermann
Geschrieben am: 12.08.2004 20:57:10

Hallo Nepumuk,

das ist schade.
Ich möchte Dir trotzdem für Deine Mühe danken.

Gruss
Bernhard


  


Betrifft: AW: Mail mit Anhang aus Outlook-Express von: Hans W. Herber
Geschrieben am: 14.08.2004 04:08:20

Hallo Bernhard,

vielleicht hilft Dir die ultimative Seite für Email-Versand mittels VBA weiter:
http://www.rondebruin.nl/sendmail.htm

Gruss hans


  


Betrifft: AW: Mail mit Anhang aus Outlook-Express von: Bernhard Ebermann
Geschrieben am: 19.08.2004 23:18:37

Hallo Hans,

konnte diese Mail leider erst heute beantworten, da ich einen Kurzurlaub eingelegt hatte.
Der Link war mir bekannt.
Bin aber bei der PW-Übergabe hängen geblieben.

Siehe hierzu
https://www.herber.de/forum/archiv/464to468/t466319.htm#466319
Danke Dir aber trotzdem für den Versuch.

Gruss
Bernhard