Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Wie füge ich der Mail einen Text hinzu?

Frage Microsoft Microsoft Office

Mitglied: Asterix2

Asterix2 (Level 1) - Jetzt verbinden

11.01.2013 um 13:04 Uhr, 2000 Aufrufe, 8 Kommentare

Hallo,
ich versende mit dem Unten stehenden Code E-Mails aus Excel 2010. Soweit läuft auch alles wunderbar. Nun möchte ich noch einen Text in die Mail einfügen. Wie muß ich vorgehen? Wenn ich Body = "Blabla" einfüge bekomme ich einen Fehler.
Gruß Asterix2

Dim Epfänger As String
Dim arrTo As Variant
arrTo = Array(Range("A83").Value, Range("A1").Value, Range("A2").Value, Range("A3").Value, Range("A4").Value, Range("A5").Value)
ActiveWorkbook.SendMail Recipients:=arrTo, Subject:="Ich bin eine Mail" & "_" & strFile
Mitglied: napperman
11.01.2013 um 14:34 Uhr
Moin!

Ich glaub, das geht so nicht.
Es gibt aber andere Lösungen um Mails via Script zu senden.
Schau mal hier:
http://www.rondebruin.nl/sendmail.htm

Gruß Napperman
Bitte warten ..
Mitglied: Asterix2
11.01.2013 um 14:42 Uhr
Hallo nappermann,
Danke für deine Antwort. Werde mir das mal zu Gemüte führen.
Solange hoffe ich das vielleicht doch noch jemand eine Lösung für mich hat.
Gruß Asterix2
Bitte warten ..
Mitglied: 76109
11.01.2013, aktualisiert 12.01.2013
Hallo Asterix2!

Wenn's vollautomatisiert ablaufen soll, dann gibt es noch ne andere Möglichkeit, allerdings sind dann noch weitere Parameter erforderlich:
1. Die EMail-Adresse des Absender
2. Der Smtp-Server (z.B. "smtp.1und1.de")
3. Das Passwort
4. SSL-Verschlüsselung
5. Smtp-Port

Zu 1. Als Konstante oder die Möglichkeit, diese anhand des Workbook-Inhalts auszulesen
Zu 2. Als Konstante
Zu 3. Vorzugsweise eine verdeckte Passwort-Abfrage mittels einer kleinen UserForm
Zu 4. Als Konstante (True/False)
Zu 5. Als Konstante oder Standard-Ports anhand von SSL-Status (True/False) ermitteln: Ohne SSL Port 25, Mit SSL Port 465)

Zudem wäre noch interessant zu wissen, ob die Empfänger-Adressen in den Zellen A1, A2, ... als Hyperlinks angezeigt werden?

Gruß Dieter


[edit] Funktioniert mit meiner Idee leider nicht, weil keine Datei angehängt werden kann, die geöffnet ist. Allerdings besteht die Möglichkeit eine Copy der aktiven Arbeitsmappe zu speichern und diese zu versenden [/edit]
Bitte warten ..
Mitglied: Asterix2
12.01.2013 um 14:13 Uhr
Hallo didi1954,

Danke für deine Hilfe.

@[edit] Funktioniert mit meiner Idee leider nicht, weil keine Datei angehängt werden kann, die geöffnet ist. Allerdings besteht die Möglichkeit eine Copy der aktiven Arbeitsmappe zu speichern und diese zu versenden [/edit]@

Die Datei sollte schon angehängt werden. Alles andere wäre schlecht.

Gruß Asterix2
Bitte warten ..
Mitglied: 76109
12.01.2013 um 17:52 Uhr
Hallo Asterix2!

Die Datei sollte schon angehängt werden. Alles andere wäre schlecht.
Habe doch geschrieben, dass es mit einer Kopie geht. Das bedeutet, dass im Code eine aktuelle Kopie per ThisWorkbook.CopySaveAs im Temp-Ordner gespeichert und verschickt werden kann.

Gruß Dieter
Bitte warten ..
Mitglied: Asterix2
13.01.2013 um 15:21 Uhr
Hallo didi1954,
sorry, das hab ich anders verstanden. Also die Adressen wären in Zelle A1 usw. als Hyperlinks hinterlegt.
Die Daten(1-5)würde ich nur ungerne hier im IE veröffentlichen. Allerdings ohne deine Hilfe komme ich auch nicht weiter.
Wie komme ich nun an mein Ziel?
Gruß Asterix2
Bitte warten ..
Mitglied: 76109
13.01.2013 um 18:36 Uhr
Hallo Asterix2!

Schritt 1:
- Erstelle eine UserForm mit Namen 'FrmPW' und füge eine TextBox mit Namen 'InputPW' und einen OK-Button mit Namen 'cBtnOK' ein.
- Füge in der UserForm diesen Code ein:
01.
Option Explicit 
02.
 
03.
Function GetPassword() As String 
04.
    Show 
05.
    GetPassword = InputPW.Text 
06.
    Unload Me 
07.
End Function 
08.
 
09.
Private Sub InputPW_AfterUpdate() 
10.
    Hide 
11.
End Sub 
12.
 
13.
Private Sub cBtnOK_Click() 
14.
    Hide 
15.
End Sub
Schritt 2:
- Füge diesen Code in das betreffende Tabellenblatt ein:
01.
Option Explicit 
02.
 
03.
Private Const cdoFromAddress = "Deine Email-Adresse"            'Mail-Adresse-Von (Anpassen) 
04.
Private Const cdoSmtpServer = "Smtp-Server-Adresse"             'Mail-Adresse-Smtp-Server (Anpassen) 
05.
 
06.
Private Const cdoBase64 = 1                                     'Mail-Kodierung 
07.
Private Const cdoSendUsing = 2                                  'Mail-Senden 
08.
Private Const cdoSSL = False                                    'Mail-SSL-Verschlüsselung True/False (Anpassen) 
09.
Private Const cdoSmtpPort = 25                                  'Mail-Smtp-Port ohne SSL 
10.
Private Const cdoSmtpPortSSL = 465                              'Mail-Smtp-Port mit SSL 
11.
Private Const cdoTimeout = 60                                   'Mail-Timeout 
12.
Private Const cdoConfig = "http://schemas.microsoft.com/cdo/configuration/" 
13.
 
14.
Private Const ErrMsg1 = "Keine EMail-Adressen gefunden"         'Fehlermeldung 
15.
Private Const ErrMsg2 = "Kein Password angegeben!"              'Fehlermeldung 
16.
Private Const ErrMsg3 = "Anhang nicht gefunden:"                'Fehlermeldung 
17.
Private Const ErrMsg4 = "EMail-Versand fehlgeschlagen: "        'Fehlermeldung 
18.
 
19.
Sub SendMails() 'Diese Zeile durch die Button-Sub im Tabellenblatt ersetzen 
20.
    Dim objHyperlink As Hyperlink, strPassword As String, strToAddress As String 
21.
    Dim strSubject As String, strText As String, strAttachment As String, x 
22.
     
23.
    strPassword = FrmPW.GetPassword 
24.
     
25.
    If strPassword = "" Then 
26.
        MsgBox ErrMsg2, vbExclamation, "Fehler..." 
27.
    Else 
28.
        With Columns("A:A") 
29.
            If .Hyperlinks.Count Then 
30.
                strSubject = "Der Betreff" 
31.
                strText = "Der Text" 
32.
                strAttachment = Environ("Temp") & "\" & ActiveWorkbook.Name 
33.
                ActiveWorkbook.SaveCopyAs strAttachment 
34.
     
35.
                For Each objHyperlink In .Hyperlinks 
36.
                    If InStr(objHyperlink.Address, "mailto:") > 0 Then 
37.
                        Call SendCdoMail(strPassword, objHyperlink.Name, strSubject, strText, strAttachment) 
38.
                    End If 
39.
                Next 
40.
                Kill strAttachment 
41.
                MsgBox "Habe Fertig!", vbInformation, "EMail-Versand..." 
42.
            Else 
43.
                MsgBox ErrMsg1, vbExclamation, "Fehler..." 
44.
            End If 
45.
        End With 
46.
    End If 
47.
End Sub 
48.
 
49.
Private Sub SendCdoMail(ByRef strPassword, ByRef strToAddress, ByRef strSubject, _ 
50.
                        ByRef strText As String, ByRef strAttachment) 
51.
     
52.
    With CreateObject("CDO.Message") 
53.
       .From = cdoFromAddress 
54.
       .To = strToAddress 
55.
       .Subject = strSubject 
56.
       .TextBody = strText 
57.
         
58.
        If Dir(strAttachment) <> "" Then 
59.
            .AddAttachment strAttachment 
60.
        Else 
61.
            MsgBox ErrMsg3, vbExclamation, "Fehler...":   Exit Sub 
62.
        End If 
63.
     
64.
        With .Configuration.Fields 
65.
            .Item(cdoConfig & "sendusing") = cdoSendUsing 
66.
            'Smtp-Server Name oder IP 
67.
            .Item(cdoConfig & "smtpserver") = cdoSmtpServer 
68.
            'Smtp-Server SSL (True/False) 
69.
            .Item(cdoConfig & "smtpusessl") = cdoSSL 
70.
            'Smtp-Server Port (mit SSL 465/ohne SSL 25) 
71.
            .Item(cdoConfig & "smtpserverport") = IIf(cdoSSL, 465, 25) 
72.
            'Format-Type Base64 Encoded 
73.
            .Item(cdoConfig & "smtpauthenticate") = cdoBase64 
74.
            'Smtp-Server Benutzer ID 
75.
            .Item(cdoConfig & "sendusername") = cdoFromAddress 
76.
            'Smtp-Server Passwort 
77.
            .Item(cdoConfig & "sendpassword") = strPassword 
78.
            'Smtp-Server Timeout) 
79.
            .Item(cdoConfig & "smtpconnectiontimeout") = cdoTimeout 
80.
            .Update 
81.
        End With 
82.
        On Error Resume Next 
83.
       .Send 
84.
        If Err.Number Then MsgBox ErrMsg4 & strToAddress, vbExclamation, "Fehler..." 
85.
        On Error GoTo 0 
86.
    End With 
87.
End Sub
Die Konstanten 'cdoFromAddress', 'cdoSmtpServer' und 'cdoSSL' anpassen

Gruß Dieter
Bitte warten ..
Mitglied: Asterix2
23.01.2013 um 08:43 Uhr
Hallo Dieter,
sorry das mich erst jetzt melde, aber ich gebe nicht gerne im Internet bekannt zu welchem Zeitpunkt mein Heim leer steht (Urlaub) und wann nicht. Ich hoffe du hast Verständnis dafür.
Dein Code funktionier bei mir zu Hause super. Das Problem er soll auch auf einem Exchange Server
seine Arbeit verrichten. Gibt es da Möglichkeiten?
Gruß Asterix2
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst Dateiverwaltungsaufgaben E-Mail Text ändern (6)

Frage von CharlyXL zum Thema Windows Server ...

Windows Server
gelöst Wie füge ich diesem Script die Email Adresse hinzu (16)

Frage von rainergugus zum Thema Windows Server ...

E-Mail
gelöst Mail Spam fremde IP (10)

Frage von BerndP zum Thema E-Mail ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...