Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Warnung wenn Tabelle per E-mail verschickt

Warnung wenn Tabelle per E-mail verschickt
24.04.2009 16:29:13
Deister
Hallo,
Ich verschicke mit folgendem Code eine Seite per E-mail
Sheets("Tabelle1").Select
ActiveWorkbook.SendMail Recipients:="Hier die E-Mail Adresse eintragen"
Dann bekomme ich aber folgende Warnung:
A program is trying to automatically send e-mail on your behalf.
Do you want to allow this?
If this is unexpected, it may be a virus and and you should choose "No".
Was kann ich machen, dass ich diese Warnung nicht bekomme und die E-mail ohne Anzeichen verschickt wird?
Mfg aus Luxemburg
Ant

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
DisplayAlerts-Eigenschaft
24.04.2009 16:43:30
Matthias
Hallo
probier mal ...
vor dem Senden: Application.DisplayAlerts = False
und dannach aber wieder auf True stellen.
Gruß Matthias
AW: DisplayAlerts-Eigenschaft
24.04.2009 16:47:52
Deister
Nein das funktioniert nicht.
Kann es sein dass Kasperski dazwischen funkt?
MbG
Ant
möglich ..
24.04.2009 16:53:45
Matthias
Hallo
aber ich bin da nicht sicher (ich hab einen anderen Virenscanner)
schau mal hier ob was passendes dabei ist.
https://www.herber.de/mailing/extern.htm
Gruß Matthias
AW: DisplayAlerts-Eigenschaft
24.04.2009 16:55:07
mumpel
Hallo!
Das Abschalten der DisplayAlerts nützt hier nichts, da die Meldung vom Mailprogramm kommt. Das Antivirenprogramm hat damit ebenfalls nichts zu tun. Welches Mailprogramm nutzt Du?
Gruß, René
Anzeige
Alternative...
24.04.2009 16:57:26
mumpel
...wäre Outlook. Da kann man mit SendKeys arbeiten. Für Outlook gibt es hier schon sehr viele Codebeispiele, siehe Forenarchiv oder Google.
AW: Alternative...
24.04.2009 17:01:42
Deister
Hallo,
Ich benutze Microsoft Outlook,
Gruss Ant
AW: Alternative...
24.04.2009 17:05:25
mumpel
Ersetze .Sendcolor> durch .displaycolor> und darunter den folgenden Code
Nachtrag
24.04.2009 17:06:23
mumpel
Dim WsShellcolor> muss noch dazu.
AW: Nachtrag
24.04.2009 17:24:37
Deister
Sorry das funktioniert nicht bei mir. Ich hoffe doch dass ich dich richtig vertanden habe.
ActiveWorkbook.displayMail Recipients:="E-mail adresse"
Dim WsShell
Set WsShell = CreateObject("WScript.Shell")
WsShell.AppActivate olApp
WsShell.SendKeys "%s"
Set WsShell = Nothing ~f~
~f~
Object doesn't support this property or method => bekomme ich dann als Fehlermeldung
Ant
Anzeige
AW: Nachtrag
24.04.2009 17:33:43
mumpel
Ja richtig. Habe die Hälfte vergessen. Wenn Du Outlook verwendest, dann vergiss dieses SendMail. Nimm ein Makro. Siehe Forenarchiv. Oder das folgende makro nehmen. Für das folgende Makro muss ein verweis auf die Micorosft Outlook 12.0 Object Library gesetzt werden. Anstelle von 12.0 steht die Outlookversion. Das Makro ist getestet in Excel 2007 (in verbindung mit Outlook 2007). Das Makro zum Beispiel in die personl.xls einfügen und in der Symbolleiste verknüpfen.
Nachtrag
24.04.2009 17:39:12
mumpel
Da fehlt noch ein End Withcolor> am Ende des Makros.
alternativ so ... Tabelle als Email verschicken
24.04.2009 17:46:05
Matthias
Hallo

Option Explicit
Sub Senden()
ActiveSheet.Copy
With Application
.Dialogs(xlDialogSendMail).Show "Mail@XYZ.DE", "MeinBetreff"
End With
ActiveWorkbook.Close Savechanges:=False
End Sub


Nun müsste schon mal die Tabelle im PostAusgang liegen.
ebenfalls getestet in XL2000 und in XL2007 mit Outlook2000
und bei mir funktioniert es.
Gruß Matthias L.

Anzeige
Noch eine Alternative
24.04.2009 18:03:11
mumpel
Ich arbeite gerade mal wieder an meinem Tool. Hier mal eine BETAcolor>. Über diesen Dialog kann man aus Excel heraus Emails erstellen. Anders als der eingebaute Maildialog bietet meiner etwas mehr Auswahl. Geschrieben für Excel 2007 in Verbindung mit Outlook 2007. Daher funktionieren ein paar Features nicht in älteren Outlookversionen. Dazu gehört zum Beispiel die Auswahl des Sendekontos (.SendUsingAccountcolor>). Das VBA-Kennwort lautet: acolor>
Wer sich auskennt, kann das Tool leicht für ältere Officeversionen umschreiben und zum Beispiel als AddIn nutzen.
https://www.herber.de/bbs/user/61413.zip
Anzeige
bei mir klappt Dein Code ohne Probleme
24.04.2009 17:29:12
Matthias
Hallo
nur zur Info
Habe es 2x getestet (mit Outlook2000) Mail geschickt und Mail bekommen.
Gruß Matthias
AW: Warnung wenn Tabelle per E-mail verschickt
25.04.2009 10:12:26
Tino
Hallo,
hier mal eine Möglichkeit ohne Outlook zu senden direkt über Deinen Provider,
daher auch keine lästigen Warnmeldungen.
Die Tabelle wird in eine neue Datei kopiert und im Ordner der Excel- Datei gespeichert und geschlossen.
Nach dem versenden wird diese wieder gelöscht.
Option Explicit

Sub EMail_Senden_Ohne_Outlook()
Dim iNachricht As Object, iKonfiguration As Object
Dim Felder As Variant
Dim MailDatei As Workbook
Dim strFullPath As String

'Tabelle in neue Datei kopieren und abspeichern *************************** 
     ActiveSheet.Copy
     Set MailDatei = ActiveWorkbook
     strFullPath = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\") & "MailDatei.xls" 'Name anpassen 
     MailDatei.SaveAs strFullPath
     MailDatei.Close False
'************************************************************************** 
     
     
     Set iNachricht = CreateObject("CDO.Message")
     Set iKonfiguration = CreateObject("CDO.Configuration")
     iKonfiguration.Load -1
     Set Felder = iKonfiguration.Fields


'Provider Konfiguration entsprechend anpassen ****************************** 
     With Felder
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'Authentifizierung 
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "Mailkonto" '"in der Regel Deine E-Mail-Adresse" 
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Passwort" 'Passwort angeben 
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.Server.de" 'Postausgangsserver 
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 'SMTP-Port 
        .Update
     End With
'*************************************************************************** 


'Mail erstellen und versenden ********************************************** 
     With iNachricht
         Set .Configuration = iKonfiguration
         .To = "Empfänger@Provider.de"          'Empfänger 
         .CC = ""                               'Zur Kenntnis 
         .BCC = ""                              '.BCC nicht sichtbare Empfänger 
         .Sender = "Mustermann@Proviter.de"     'Von 
         .From = """Dein Name"" "
         .Subject = "Betreff"                   'Betreffzeile 
         .TextBody = "Deine Nachricht!"         'Nachricht Body 
         .AddAttachment strFullPath             'Anlage <<<< 
         .Send
     End With
'*************************************************************************** 
     
     
     Kill strFullPath 'Datei wieder löschen 
 End Sub


Gruß Tino

Anzeige
AW: Warnung wenn Tabelle per E-mail verschickt
25.04.2009 10:24:42
mumpel
Hallo!
Sieht gut aus. Aber: Es fehlen zum Beispiel die Sendeverzögerung, die Priorität, die Wichtigkeit usw. Funktionieren diese Dinge auch, wenn man direkt über den Anbieter versendet? Und außerdem benötigt man doch die CDO. Wenn man die nicht hat, dann geht das so nicht.
Gruß, René
AW: Warnung wenn Tabelle per E-mail verschickt
25.04.2009 10:56:23
Tino
Hallo,
daher habe ich geschrieben "hier mal eine Möglichkeit". ;-)
Ob er diese bei sich nutzen kann, muss er selbst testen.
Ich kenne das System von Ant nicht und daher kann ich nur Vorschläge unterbreiten.
Gruß Tino
hier noch eine Möglichkeit...
25.04.2009 12:34:06
Tino
Hallo,
..., hierzu wird folgende .dll und .exe Datei benötigt.
https://www.herber.de/bbs/user/61416.zip
Am einfachsten diese im Ordner der Excel- Datei ablegen.
Provider Konfiguration musst Du noch anpassen.
Option Explicit

Private Declare Function CharToOemA Lib "user32.dll" (ByVal _
         lpszSrc As String, ByVal lpszDst As String) As Long
 
 Public Function ANSItoASCII(ByVal Text As String) As String
   Call CharToOemA(Text, Text)
   ANSItoASCII = Text
 End Function
 
Public Sub SendMail(xTo As String, xSubject As String, xBody As String, Optional xAttach = "")
Dim ff As Integer
Dim strPfad As String, strPfadTemp As String, cmd As String
Dim regExe As Long

' ### folgende Konstanten müssen angepasst werden!! ########################################### 
   Const xServer = "Postausgangsserver"     'SMTP-Server 
   Const xUser = "Mustermann@Provider.com"  'Username 
   Const xPassword = "Passwort"             'Passwort 
   Const xFrom = "Mustermann@Provider.com"  'Absenderadresse 
'############################################################################################## 


'Pfade b.B. auch anpassen, voreingestellt ist hier der Pfad der Excel-Mappe: 
'hier steht das Programm blat.exe 
strPfad = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
'hier wird mailbody.txt erzeugt, also Schreibrecht benötigt! 
strPfadTemp = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")

'Mailbody in Textdatei scheiben 
ff = FreeFile
Open strPfadTemp & "mailbody.txt" For Output As ff
Print #ff, xBody
Close ff

'Shell-Befehl zusammenbauen: 
cmd = """" & strPfad & "blat.exe"" """ & strPfadTemp & "mailbody.txt"" -server " & _
   xServer & " -u " & xUser & " -pw " & xPassword & " -f """ & _
   xFrom & """ -to " & xTo & " -s """ & xSubject & """"

'bei Bedarf auch den Anhang: 
If xAttach <> "" Then cmd = cmd & " -attach """ & xAttach & """"

cmd = ANSItoASCII(cmd)

'BLAT.EXE ausführen 
Shell cmd, vbHide
'warten bis Mail gesendet, eventuell anpassen 
Application.Wait Now + TimeSerial(0, 0, 6)
'Bodyfile löschen 
Kill strPfadTemp & "mailbody.txt"
End Sub
 
'zum Testen: 
Sub SendenDeinerMail()
Dim MailDatei As Workbook
Dim strPathFull As String
 
'Anlage erstellen ************ 
ActiveSheet.Copy
Set MailDatei = ActiveWorkbook
strPathFull = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\") & "MailDatei.xls" 'Name anpassen 
MailDatei.SaveAs strPathFull
MailDatei.Close False
'***************************** 

     'Senden an  ;   Betreff  ;   Body   ;   Optional Anlage 
     SendMail "excel@tinomargit.com", "So geht's weiter", "Hallo du!" & vbLf & "Wie geht's?", strPathFull
  
'Anlage löschen************ 
Kill strPathFull
End Sub


Gruß Tino

Anzeige
AW: hier noch eine Möglichkeit...
30.04.2009 11:40:28
Deister
Besten Dank für Eure Vorschläge und Hilfen,
Mit meinen bescheidenen VB Kenntnissen bin ich jedoch mit Euren letzten Ideen und Möglichkeiten definitif überfordert (-;
Ich fürchte dass ich auf meine iniziale Idee zurückkommen muss und halt mit der Warnung leben muss.
MfG
Ant

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige