Batch to send mail message (Gmail)

Discussion forum for all Windows batch related topics.

Moderator: DosItHelp

Post Reply
Message
Author
Rafhack
Posts: 19
Joined: 23 Feb 2014 15:02

Batch to send mail message (Gmail)

#1 Post by Rafhack » 05 May 2014 10:08

This code works with vbscript, and can send email messages.

Code: Select all

@echo off
::Enviando e-mail via batch,
setlocal enabledelayedexpansion
mode con cols=78 lines=20
:begin
cls&echo/=================================Send  email=================================

set /p "sender=Your email address (Gmail): "
for /f "delims=@ tokens=2" %%e in ('echo/%sender%') do (
   if /i "%%e" neq "gmail.com" (
      echo/I SAID, GMAIL^^!
      timeout 2 1>nul 2>nul
      goto begin
   )
)
set /p "password=Your password: "
set /p "para=To: "
set /p "subject=Subject: "
set /p "Mensagem=Message: "
(
echo/sendMail "!sender!", _
echo/"!subject!", _
echo/"!para!", _
echo/"!Mensagem!", _
echo/"!password!", _
echo/"smtp.gmail.com", _
echo/"465"
echo/
echo/Function SendMail^(Sender, Subject, Reciever, Text, Password, mailserver, portnum^)
echo/    Dim iMsg, iConf, Flds, schema, SendEmailGmail
echo/    Set iMsg = CreateObject^("CDO.Message"^)
echo/   Set iConf = CreateObject^("CDO.Configuration"^)
echo/   Set Flds = iConf.Fields
echo/   schema = "http://schemas.microsoft.com/cdo/configuration/"
echo/   Flds.Item^(schema ^& "sendusing"^) = 2
echo/   Flds.Item^(schema ^& "smtpserver"^) = mailserver
echo/   Flds.Item^(schema ^& "smtpserverport"^) = portnum
echo/   Flds.Item^(schema ^& "smtpauthenticate"^) = 1
echo/   Flds.Item^(schema ^& "sendusername"^) = Sender
echo/   Flds.Item^(schema ^& "sendpassword"^) = Password
echo/   Flds.Item^(schema ^& "smtpusessl"^) = 1
echo/   Flds.Update
echo/    With iMsg
echo/      .To = Reciever
echo/      .From = Sender
echo/      .Subject = Subject
echo/      .HTMLBody = Text
echo/      .Sender = Sender
echo/      .Organization = "S.M.B Productions"
echo/      .ReplyTo = Sender
echo/      Set .Configuration = iConf
echo/      SendEmailGmail = .send
echo/   End With
echo/End Function
) > _sendMail.vbs
cscript //nologo _sendMail.vbs
del _sendMail.vbs
cls&echo/If no error was shown, it worked ;^)
pause>nul

penpen
Expert
Posts: 2009
Joined: 23 Jun 2013 06:15
Location: Germany

Re: Batch to send mail message (Gmail)

#2 Post by penpen » 05 May 2014 10:59

It is unsecure to store the password in a (temporary) file, as everyone who knows how to search that will find it.
You better should create a hybrid batch/vbs/wsf script, and pass the password as a variable only stored in RAM:
See Livius method http://www.dostips.com/forum/viewtopic.php?p=33963#p33963.

penpen

Post Reply