Emailmakro

Hallo Leute,
ich versuche eine Tabelle, die in Spalte A 50 Emailadressen, in Spalte B den Betreff und in Spalte C den Text hat, durch ein Makro in einem Rutsch an die jeweiligen Adressen zu schicken. De Code dafür funktioniert bereits perfekt. Nur leider Gottes, wird bei jeder einzelnen Mail eine Warnmeldung angezeigt, daß ein externes Programm auf mein Emailprogramm zugreifen will. Der Zugriff muß manuell für jede mail erlaubt werden. Wie kann man diese Warnmeldung abschalten???

Gruß
Denis

Hallo,
welches E-mail Programm benutzt Du denn??

Grüssle
Suse

Hallo,
welches E-mail Programm benutzt Du denn??

Outlook und Outlook Express. Duch den Makrocode greife ich aber nur auf Outlook zu.

Gruß
Denis

Hallo,

ich hab hier lediglich den code zum versenden einer Info aus Excel (über outlook)…vielleicht hilft es ja schon weiter

Grüssle
Suse

_Fügen Sie in Ihrer Excel-Datei ein neues Tabellenblatt ein
Nun die Zellen wie folgt füllen:

Z3 S1 = Text für Betreffzeile der E-mail
Z4 S1 = Erste Zeile Text in der E-mail
Z5 S1 = Zweite Zeile Text in der E-mail

Z13 S1 freier Text, z B. Verteiler
Z13 S2 erste E-mail-Adresse
Z14 S2 zweite E-mail-Adresse
Z15 S2 dritte E-mail Adresse
usw.

Öffnen Sie nun den Visual-Basic-Editor (Alt+F11)
Öffnen Sie im VBA-Projekt (Dateiname) „diese Arbeitsmappe“
Und kopieren folgenden Block hinein

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox(„Möchten Sie diese Excel-Datei per Mail versenden?“, vbYesNo) = vbYes Then
Call Modul1.SendViaMail
End If
End Sub

Private Sub Workbook_Open()

End Sub

Gehen Sie nun im Visual-Basic-Editor (Dateiname) auf Module und fügen ggfs ein freies Modul ein
Kopieren Sie dort hinein folgenden Block:

Public Sub SendViaMail()
Dim olApp As Object
Dim olMail As Object
Dim xlSubjectCell As Range
Dim xlBodyCell1 As Range
Dim xlBodyCell2 As Range
mailaddi = Liste(13, 2, „;“)

With ActiveSheet
Set xlSubjectCell = .Range(„A3“)
Set xlBodyCell1 = .Range(„A4“)
Set xlBodyCell2 = .Range(„A5“)
End With

Set olApp = CreateObject(„Outlook.Application“)
Set olMail = olApp.CreateItem(0)
With olMail
.To = mailaddi
.Subject = xlSubjectCell.Text
.Body = xlBodyCell1.Text & _
vbTab & xlBodyCell2.Text
.Display
’ .send
End With
Set xlBodyCell2 = Nothing
Set xlBodyCell1 = Nothing
Set xlSubjectCell = Nothing
Set olMail = Nothing
Set olApp = Nothing
End Sub

Function Liste(Zeile As Integer, Spalte As Integer, Trenner As String) As String
Liste = Cells(Zeile, Spalte)
Zeile = Zeile + 1
Do While Cells(Zeile, Spalte) „“
Liste = Liste & Trenner & Cells(Zeile, Spalte)
Zeile = Zeile + 1
Loop

End Function

Wenn Sie sicher sind, daß der Versand funktioniert, der Verteiler vollständig und der Text wie gewünscht ist, entfernen Sie das Hochkomma vor „send“ (sendet die E-mail sofort) und setzen es vor „Display“ (zeigt die E-mail erst an)

Das war’s eigentlich_

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

dieses Verhalten ist ein Feature der Outlook Security. Das Verhalten laesst sich ueber eine Reihe von Registry-Eintrage manipulieren.

Ist aber die Umgebung mittels Exchange-Server aufgebaut, kann man dieses Verhalten auf dem Server auf Applikationsebene konfigurieren.

Da ich nicht wirklich Outlook benutze sind mir die Details entfallen.
Hier ein Ausschnitt aus einem MSDN-Artikel, vieleicht behebt dies dein Problem. Dort Level = 1 eintragen.

HKEY_LOCAL_MACHINE\Software\Microsoft\Office\10.0\Security
The Level value in this subkey is the security setting that applies to the local computer. This setting takes precedence over the per-user setting, regardless of how the per-user setting is customized. You can customize this setting on the Change Office User Settings page or the Add/Remove Registry Entries page of the Custom Installation Wizard.

For example, on the Specify Security Settings page, you can set the default security level for Microsoft Word to Medium. This step sets the Level value in the Security subkeys in the HKEY_CURRENT_USER branch to 2. However, on the Change Office User Settings page, you can also set the Level value in the Security subkey in the HKEY_LOCAL_MACHINE branch to 3. In this scenario, Word is installed on the computer with the default security level set to High for all users.

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Suse,
der Code eignet sich nur, wenn ein und dieselbe Email an verschiedene Empfänger gesendet werden soll. Ich möchte jeden Empfänger aber persönlcih ansprechen, so daß eine individuelle mail unausweichlich ist. Die Alarmmeldung, daß eine Anwendung versucht auf das Mailprogramm zuzugreifen, erscheint bei Deinem Code allerdings auch. Diese Alarmmeldung gibt es auch erst in den neueren Outlookversionen, um zu verhindern, daß sich Viren zu leicht verbreiten können. Es muß aber irgendwo in der Registry einen Schlüssel geben um dies abzuschalten. Ansonsten finde ich Deinen Code ganz gut. Danke.

Gruß
Denis

Hallo,

dieses Verhalten ist ein Feature der Outlook Security. Das
Verhalten laesst sich ueber eine Reihe von Registry-Eintrage
manipulieren.

Ist aber die Umgebung mittels Exchange-Server aufgebaut, kann
man dieses Verhalten auf dem Server auf Applikationsebene
konfigurieren.

Da ich nicht wirklich Outlook benutze sind mir die Details
entfallen.
Hier ein Ausschnitt aus einem MSDN-Artikel, vieleicht behebt
dies dein Problem. Dort Level = 1 eintragen.

Hallo Peter,
diese Einstellung in der Registry hat nichts gebracht. Die Warnmeldung erscheint trotzdem.

Gruß
Denis

Hi Denis,
welche Outlookversion? Wer sendet die Warnmeldung, Outlook oder Windows? Welche Windowsversion? Wie lautet der Warntext? Wie sieht der Code aus?
Gruß
Reinhard

Hi Denis,
welche Outlookversion?

Ich nutzte OfficeXP, in der Registry steht die Nr. 10

Wer sendet die Warnmeldung, Outlook oder Windows?

die kommt von Outlook, Warntext lautet: Ein Programm versucht auf ihre in Outlook gespeicherten Email-Adressen zuzugreifen! Möchten Sie dies zulassen?

Welche Windowsversion?
XP Home

Wie sieht der Code aus?

die Warnmeldung kommt immer nur wenn ich den „send-Befehl“ im VBA-Code von Excel benutze. Beim display-Befehl kommt sie nicht. Da ich die mails direkt versenden möchte brauche ich den send-Befehl.

Gruß
Denis