Page 1 of 1

Batch to send mail message (Gmail)

Posted: 05 May 2014 10:08
by Rafhack
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

Re: Batch to send mail message (Gmail)

Posted: 05 May 2014 10:59
by penpen
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