2009-07-18 6 views
-3

Ich brauche ein kleines Windows-Skript, um eine 1-Zeilen-E-Mail an Google Mail-Konten zu senden. Ich habe viele Dienstprogramme ausprobiert, die behaupten, dies zu tun, wie BLAT, aber keine funktioniert. Das Skript wird innerhalb einer Batchdatei ausgeführt, wenn bestimmte Bedingungen erfüllt sind. Skript kann in Perl, Python, VBScript, Java sein, es spielt keine Rolle, solange es aus einer Batch-Datei ausgeführt wird. Bitte antworten Sie nur, wenn Sie Ihre Lösung versucht haben, indem Sie eine E-Mail von einem Gmail-, Hotmail- oder Yahoo-E-Mail-Konto an ein Google Mail-Konto senden. Das Konto, das ich standardmäßig verwende, ist Google Mail. Daher sende ich von einem Google Mail-Konto an ein Google Mail-Konto.Wie kann ich eine E-Mail von einem Google Mail-Konto über eine Batchdatei oder ein Skript an ein anderes Google Mail-Konto senden?

+4

Sie müssen sicherstellen, dass es einen Titel und etwas im Körper gibt. Ansonsten werden die meisten E-Mail-Anbieter es einfach ignorieren. –

+0

Bitte lesen Sie die Frage erneut, ich brauche ein vollständiges Skript, um in die Batch-Datei zu stecken, nicht kleine Bits ohne Richtung. Danke, Antone – Antone

+3

Da es nicht einfach ist, ein Problem nicht vollständig in einem Absatz des Textes, und dass es ebenso schwierig zu beurteilen, einen Fragesteller Maß an Fachwissen beschrieben zu lösen, finde ich, dass Brad Gilberts Kommentar perfekt relevant war und möglicherweise hilfreich . – Inshallah

Antwort

10

Blat können Sie E-Mails direkt aus Batch-Dateien senden:

blat.exe - -f [email protected] -to [email protected] -s Subject -body "Text body"^
    -server smtp.example.com:25 -u username -pw password 

Aber es scheint, dass Blat SSL nicht unterstützt, so machen es mit dem Google Mail Sie ein zusätzliches Werkzeug Stunnel genannt müssen arbeiten (siehe here und here).

Auf jeden Fall sollten Sie eine E-Mail über GMail von VBScript mit der Collaboration Data Objects (CDO) COM API der Lage sein, senden:

Const schema = "http://schemas.microsoft.com/cdo/configuration/" 
Const cdoBasic = 1 
Const cdoSendUsingPort = 2 
Dim oMsg, oConf 

' E-mail properties 
Set oMsg  = CreateObject("CDO.Message") 
oMsg.From  = "[email protected]" ' or "Sender Name <[email protected]>" 
oMsg.To  = "[email protected]" ' or "Recipient Name <[email protected]>" 
oMsg.Subject = "Subject" 
oMsg.TextBody = "Text body" 

' GMail SMTP server configuration and authentication info 
Set oConf = oMsg.Configuration 
oConf.Fields(schema & "smtpserver")  = "smtp.gmail.com" 
oConf.Fields(schema & "smtpserverport") = 465 
oConf.Fields(schema & "sendusing")  = cdoSendUsingPort 
oConf.Fields(schema & "smtpauthenticate") = cdoBasic 
oConf.Fields(schema & "smtpusessl")  = True 
oConf.Fields(schema & "sendusername")  = "[email protected]" 
oConf.Fields(schema & "sendpassword")  = "sender_password" 
oConf.Fields.Update 

oMsg.Send 

Edit: Added die fehlende sendusing Parameter so sollte es jetzt funktionieren.

Weitere CDO-Beispiele finden Sie unter here. können

+0

Ich versuchte BLAT- nicht funktioniert und sendmail und viele andere. Die meisten benutzen anscheinend alten Code - TLS. Übrigens glaube ich, dass Gmail nicht auf 25 Port funktioniert. Sie verwenden 465. – Antone

+0

Es würde helfen, wenn Sie Ihre Frage erweitert und uns gesagt, welche Tools und/oder Code Sie versuchten und wie genau sie "nicht funktioniert" (welche Fehlermeldungen Sie erhalten haben etc), bieten mehr Informationen über Ihre Umgebung und so auf. Möglicherweise hängt das Problem mit der Konfiguration Ihrer Umgebung/des STMP-Servers zusammen und kann durch Hinzufügen weiterer Einstellungen zum Code gelöst werden. Aber ohne die Details zu kennen, ist es schwer, etwas anderes zu finden. – Helen

+0

@Antone: Scheint, dass Blat und Sendmail ein zusätzliches Tool namens * Stunnel * benötigen, um mit Google Mail zu arbeiten (siehe die aktualisierte Antwort). Ich habe auch das VBScript-Beispiel geändert, um den Gmail-SMTP-Server zu verwenden. Funktioniert es jetzt für Sie? – Helen

3
#!c:/Python/python.exe -u 
import libgmail 
ga = libgmail.GmailAccount("[email protected]", "password") 
ga.login() 
msg=libgmail.GmailComposedMessage("[email protected]", "SubjectHere", "BodyHere") 
ga.sendMessage(msg) 

Das sollte unter Windows mit Python laufen. Stelle sicher, dass du den Shebang an der Spitze änderst, um auf deine Python-Installation zu zeigen. Anderenfalls geben Sie einfach Ihren Namen und Ihr Passwort sowie die E-Mail-Adresse ein, die Sie senden möchten.

+1

Dies sendet eine E-Mail * von * einem Google Mail-Konto an eine andere Google Mail oder eine andere Adresse ... –

+1

... und ich denke, der Punkt dieses Kommentars wäre, hat das OP ein Google Mail-Konto zum Senden von? Wenn nicht (oder wenn er es nicht verwenden möchte), wäre eine SMTP- oder Sendmail-API-Lösung erforderlich. –

+0

Die Frage hat nicht gesagt, wo die E-Mail gesendet werden musste ... –

5

Werfen Sie einen Blick auf diese script auf perlmonks, die IMAP-Zugriff auf einem GMail-Konto detailliert. Die Post deckt alles ab, was Sie benötigen, um sich über Perl in einen GMail-Account einzuloggen.

Alternativ können Sie das Mail::Webmail::Gmail Modul in CPAN versuchen. Von den Blicken von ihm das Modul können Sie die meisten der komplizierten Details überspringen über Verbindungs- und Authentifizieren mit dem Mail-Server, den Sie mit etwas so einfaches wie verlassen -

my $gmail = Mail::Webmail::Gmail->new(username => 'username', password => 'password',); 
$gmail->send_message(to => '[email protected]', subject => 'Test Message', msgbody => 'This is a test.'); 

Es gibt auch Email::Send::Gmail den Fall, dass Sie ‚nur‘ senden E-Mails von einem Google Mail-Konto.

+0

Danke-, wenn der Python-Code nicht funktioniert, aber ich denke, ich werde dies als nächstes überprüfen. – Antone

+0

Vielen Dank muteW für die Hilfe, ich werde immer noch Ihre Ideen bekommen und sicherlich planen in Perl oder Python zu schauen, um das VBScript zu ersetzen, das ich jetzt für das Modul der Anwendung habe. Danke nochmal! Antone – Antone

3

Wenn Sie nur an GMail senden - I Verwenden Sie es, um Benachrichtigungen an mein Google Mail-Konto zu senden.

+0

Danke, ich werde mir das ansehen. – Antone

+0

Nun - scheint jeder hat eine Lösung, ohne es auszuprobieren.Ich hatte gehofft, dass Python den Trick machen würde, aber es braucht auch ein mechanisiertes Modul und ich kann es nicht finden. Ich denke, ich werde Perl als nächstes herunterladen und Ihre Lösung ausprobieren. Ich bin erstaunt über all die Erfahrung hier und es ist jetzt 6 Stunden lang versucht, eine Lösung für ein einfaches Skript zu finden, das E-Mails aus einer Batch-Datei sendet. Beeindruckend! Danke! – Antone

+0

Das schließt jeder kam es schien ein 24-jähriges Mädchen aus Russland war. Sie war sehr hilfsbereit, aber ich glaube, ich habe Fehler in meinem Skript, dann ist sie verschwunden. Also hier geh ich mit Perl! – Antone

Verwandte Themen