Send email from a different person

Recommended Posts

nitekram 68

nitekram 68

Was looking at the outlook.au3 UDF, and it appears that the user that is logged into Outlook would be the person sending the email. Is there anyway to have it come from a dummy account. We are trying to send a ticket to our ticking system via email, and in order for it to be dispatched to the right techs, it would have to come from a certain person. Is there such a way to allow it to come from someone else, other than the person logged into the computer and logged into Outlook?

EDIT

Checking this out, as it might work

Edited January 31, 2015 by nitekram

2¢

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go."

"Everybody catches up with everyone, eventually"

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

;;##################################; Include;###################################Include<file.au3>;##################################; Variables;##################################$SmtpServer="smtp.gmail.com"; address for the smtp-server to use - REQUIRED$FromName="Dummy Account"; name from who the email was sent$FromAddress="dummy@Email.Address.com"; address from where the mail should come$ToAddress="test@test.com";"" ; destination address of the email - REQUIRED$Subject="Userinfo"; subject from the email - can be anything you want it to be$Body=""; the messagebody from the mail - can be left blank but then you get a blank mail$AttachFiles=""; the file(s) you want to attach seperated with a ; (Semicolon) - leave blank if not needed$CcAddress='';"CCadress1@test.com" ; address for cc - leave blank if not needed$BccAddress='';"BCCadress1@test.com" ; address for bcc - leave blank if not needed$Importance="Normal"; Send message priority: "High", "Normal", "Low"$Username="user"; username for the account used from where the mail gets sent - REQUIRED$Password="pass"; ; password for the account used from where the mail gets sent - REQUIRED$IPPort=465;587 ;465 ;25 ; port used for sending the mail$ssl=1; enables/disables secure socket layer sending - put to 1 if using httpS;~ $IPPort=465 ; GMAIL port used for sending the mail;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS;##################################; Script;##################################Global$oMyRet[2]Global$oMyError=ObjEvent("AutoIt.Error","MyErrFunc")$rc=_INetSmtpMailCom($SmtpServer,$FromName,$FromAddress,$ToAddress,$Subject,$Body,$AttachFiles,$CcAddress,$BccAddress,$Importance,$Username,$Password,$IPPort,$ssl)If@errorThenMsgBox(0,"Error sending message","Error code:"&@error&" Description:"&$rc)EndIf;; The UDFFunc_INetSmtpMailCom($s_SmtpServer,$s_FromName,$s_FromAddress,$s_ToAddress,$s_Subject="",$as_Body="",$s_AttachFiles="",$s_CcAddress="",$s_BccAddress="",$s_Importance="Normal",$s_Username="",$s_Password="",$IPPort=25,$ssl=0)Local$objEmail=ObjCreate("CDO.Message")$objEmail.From='"'&$s_FromName&'" <'&$s_FromAddress&'>'$objEmail.To=$s_ToAddressLocal$i_Error=0Local$i_Error_desciption=""If$s_CcAddress<>""Then$objEmail.Cc=$s_CcAddressIf$s_BccAddress<>""Then$objEmail.Bcc=$s_BccAddress$objEmail.Subject=$s_SubjectIfStringInStr($as_Body,"<")AndStringInStr($as_Body,">")Then$objEmail.HTMLBody=$as_BodyElse$objEmail.Textbody=$as_Body&@CRLFEndIfIf$s_AttachFiles<>""ThenLocal$S_Files2Attach=StringSplit($s_AttachFiles,";")For$x=1To$S_Files2Attach[0]$S_Files2Attach[$x]=_PathFull($S_Files2Attach[$x]);~ ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug ConsoleIfFileExists($S_Files2Attach[$x])ThenConsoleWrite('+> File attachment added: '&$S_Files2Attach[$x]&@LF)$objEmail.AddAttachment($S_Files2Attach[$x])ElseConsoleWrite('!> File not found to attach: '&$S_Files2Attach[$x]&@LF)SetError(1)Return0EndIfNextEndIf$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")=$s_SmtpServerIfNumber($IPPort)=0then$IPPort=25$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=$IPPort;Authenticated SMTPIf$s_Username<>""Then$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")=$s_Username$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")=$s_PasswordEndIfIf$sslThen$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl")=TrueEndIf;Update settings$objEmail.Configuration.Fields.Update; Set Email ImportanceSwitch$s_ImportanceCase"High"$objEmail.Fields.Item("urn:schemas:mailheader:Importance")="High"Case"Normal"$objEmail.Fields.Item("urn:schemas:mailheader:Importance")="Normal"Case"Low"$objEmail.Fields.Item("urn:schemas:mailheader:Importance")="Low"EndSwitch$objEmail.Fields.Update; Sent the Message$objEmail.SendIf@errorThenSetError(2)Return$oMyRet[1]EndIf$objEmail=""EndFunc;==>_INetSmtpMailCom;;; Com Error HandlerFunc MyErrFunc()$HexNumber=Hex($oMyError.number,8)$oMyRet[0]=$HexNumber$oMyRet[1]=StringStripWS($oMyError.description,3)ConsoleWrite("### COM Error ! Number: "&$HexNumber&" ScriptLine: "&$oMyError.scriptline&" Description:"&$oMyRet[1]&@LF)SetError(1); something to check for when this function returnsReturnEndFunc;==>MyErrFunc

Anyone have an idea?

Edited January 31, 2015 by nitekram

2¢

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go."

"Everybody catches up with everyone, eventually"

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

Share this post

Link to post

Share on other sites

nitekram 68

nitekram 68

Thanks, and I have tried all the ports listed, plus ssl is set to 1 (True). I know I had this working on another computer. I will have to look around for the code, but thought it might be an easy fix. The ERROR above was confusing, but once I overwrote the file au3check it was able to compile and run, but not run the way I want it.

I will keep searching...thanks again SmOke_N

2¢

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go."

"Everybody catches up with everyone, eventually"

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

Share this post

Link to post

Share on other sites

nitekram 68

nitekram 68

Well, I was trying company email, but when that did not work, I tried the gmail approach, but that still did not work. Do you have an idea for gmail? At least I can look at it and determine if I can find the right info for my server. Thanks

2¢

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go."

"Everybody catches up with everyone, eventually"

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

Ternary operator

Share this post

Link to post

Share on other sites

nitekram 68

nitekram 68

$FromAddress should probably be dummy@gmail.com and $username should be the same, as I recall (not a gmail user)

That would not do for my application, as the email has to be the same as it is being sent by an automated process. It would not work in the ticketing system we have to allow 10 - 20 users all having their name on the email. Meaning that the gmail account or whateve smtp server I decide to use, would also have to use that name too, and I do not believe we want that.

2¢

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go."

"Everybody catches up with everyone, eventually"

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

Here is the code to make it easy: Just add your account info in the area: just your first part of your account before the @ for the first 3 items, then your password

$sName = ""
$sTo = ""
$sFrom = ""
$sPass = ""

;;##################################; Include;###################################Include<file.au3>;##################################; Variables;##################################$sName="@yahoo.com"$sTo="@yahoo.com"$sFrom="@yahoo.com"$sPass="password"$SmtpServer="smtp.yahoo.com"; address for the smtp-server to use - REQUIRED$FromName=$sName&"@yahoo.com"; name from who the email was sent$FromAddress=$sName&"@yahoo.com"; address from where the mail should come$ToAddress=$sName&"@yahoo.com"; destination address of the email - REQUIRED$Subject="Userinfo"; subject from the email - can be anything you want it to be$Body=""; the messagebody from the mail - can be left blank but then you get a blank mail$AttachFiles=""; the file(s) you want to attach seperated with a ; (Semicolon) - leave blank if not needed$CcAddress='';"CCadress1@test.com" ; address for cc - leave blank if not needed$BccAddress='';"BCCadress1@test.com" ; address for bcc - leave blank if not needed$Importance="Normal"; Send message priority: "High", "Normal", "Low"$Username=$sName&"@yahoo.com"; username for the account used from where the mail gets sent - REQUIRED$Password=$sPass;"@gcl1234" ; password for the account used from where the mail gets sent - REQUIRED$IPPort=25;465 ;587 ;465 ;25 ; port used for sending the mail$ssl=0;True ; enables/disables secure socket layer sending - put to 1 if using httpS;~ $IPPort=465 ; GMAIL port used for sending the mail;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS;##################################; Script;##################################Global$oMyRet[2]Global$oMyError=ObjEvent("AutoIt.Error","MyErrFunc")$rc=_INetSmtpMailCom($SmtpServer,$FromName,$FromAddress,$ToAddress,$Subject,$Body,$AttachFiles,$CcAddress,$BccAddress,$Importance,$Username,$Password,$IPPort,$ssl)If@errorThenMsgBox(0,"Error sending message","Error code:"&@error&" Description:"&$rc)EndIf;; The UDFFunc_INetSmtpMailCom($s_SmtpServer,$s_FromName,$s_FromAddress,$s_ToAddress,$s_Subject="",$as_Body="",$s_AttachFiles="",$s_CcAddress="",$s_BccAddress="",$s_Importance="Normal",$s_Username="",$s_Password="",$IPPort=25,$ssl=0)Local$objEmail=ObjCreate("CDO.Message")$objEmail.From='"'&$s_FromName&'" <'&$s_FromAddress&'>'$objEmail.To=$s_ToAddressLocal$i_Error=0Local$i_Error_desciption=""If$s_CcAddress<>""Then$objEmail.Cc=$s_CcAddressIf$s_BccAddress<>""Then$objEmail.Bcc=$s_BccAddress$objEmail.Subject=$s_SubjectIfStringInStr($as_Body,"<")AndStringInStr($as_Body,">")Then$objEmail.HTMLBody=$as_BodyElse$objEmail.Textbody=$as_Body&@CRLFEndIfIf$s_AttachFiles<>""ThenLocal$S_Files2Attach=StringSplit($s_AttachFiles,";")For$x=1To$S_Files2Attach[0]$S_Files2Attach[$x]=_PathFull($S_Files2Attach[$x]);~ ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug ConsoleIfFileExists($S_Files2Attach[$x])ThenConsoleWrite('+> File attachment added: '&$S_Files2Attach[$x]&@LF)$objEmail.AddAttachment($S_Files2Attach[$x])ElseConsoleWrite('!> File not found to attach: '&$S_Files2Attach[$x]&@LF)SetError(1)Return0EndIfNextEndIf$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")=$s_SmtpServerIfNumber($IPPort)=0then$IPPort=25$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=$IPPort;Authenticated SMTPIf$s_Username<>""Then$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")=$s_Username$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")=$s_PasswordEndIfIf$sslThen$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl")=TrueEndIf;Update settings$objEmail.Configuration.Fields.Update; Set Email ImportanceSwitch$s_ImportanceCase"High"$objEmail.Fields.Item("urn:schemas:mailheader:Importance")="High"Case"Normal"$objEmail.Fields.Item("urn:schemas:mailheader:Importance")="Normal"Case"Low"$objEmail.Fields.Item("urn:schemas:mailheader:Importance")="Low"EndSwitch$objEmail.Fields.Update; Sent the Message$objEmail.SendIf@errorThenSetError(2)Return$oMyRet[1]EndIf$objEmail=""EndFunc;==>_INetSmtpMailCom;;; Com Error HandlerFunc MyErrFunc()$HexNumber=Hex($oMyError.number,8)$oMyRet[0]=$HexNumber$oMyRet[1]=StringStripWS($oMyError.description,3)ConsoleWrite("### COM Error ! Number: "&$HexNumber&" ScriptLine: "&$oMyError.scriptline&" Description:"&$oMyRet[1]&@LF)SetError(1); something to check for when this function returnsReturnEndFunc;==>MyErrFunc

Edited January 31, 2015 by nitekram

2¢

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go."

"Everybody catches up with everyone, eventually"

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

Ternary operator

Share this post

Link to post

Share on other sites

kylomas 412

kylomas 412

I will give you the code I use in private, complete with userid and password if you like. I am running this from a dialog that sets up the wrapper to the smtp call. This might also help you with testing as the dialog can use multiple server configs depending on what you setup.