NeoMagic Posted June 11, 2018 Posted June 11, 2018 Hi All, I've modified this code somewhat to suit my organisations requirements but need some assistance if possible. What I need to do is supress the M: field if there is no data, currently writes M: and leaves it blank in the signature. I hope I've made sense. 'Switch for dev mode (true, false) DevMode = false 'Default links for office sURLWWW = "http://www.amtek-group.co.uk" sURLLinkedin = "https://www.linkedin.com/company/amtek-engineering-solutions/" sURLCert = "http://qz7.a67.myftpupload.com/iso-90012015-certificate/" 'Setup script functions for calls to file system Set WshShell = WScript.CreateObject("WScript.Shell") Set FileSysObj = CreateObject("Scripting.FileSystemObject") strQuteChr = chr(34) if DevMode then msgbox "Devmode is ON" strDesktop = WshShell.SpecialFolders("Desktop") SigFolder = strDesktop & "\sigs\" SigFile = SigFolder & "sig_dev.htm" SigFileTxt = SigFolder & "sig_dev.txt" else 'create the objects and set the initial vars Set objADSysInfo = CreateObject("ADSystemInfo") Set UserObj = GetObject("LDAP://" & objADSysInfo.UserName) strAppData = WshShell.ExpandEnvironmentStrings("%APPDATA%") SigFolder = StrAppData & "\Microsoft\Signatures\" SigFile = SigFolder & UserObj.sAMAccountName & ".htm" SigFileTxt = SigFolder & UserObj.sAMAccountName & ".txt" End If 'check the existence of the sig dir, if not there create it if not FileSysObj.FolderExists(SigFolder) then FileSysObj.CreateFolder(SigFolder) end if if DevMode then sUserName = "dev" sFullName = "Employee Full Name" sPosition = "Employee Job Description" sMobile = "0400 123 456" sEmail = "[email protected]" sCompany = "Company Name Pty Ltd" sOfficePhone = "(03) 6300 1111" sOfficeFax = "(03) 6300 2222" else 'Get User Data from Active Directory sUserName = UserObj.sAMAccountName sFullName = UserObj.displayname sPosition = UserObj.title sMobile = UserObj.mobile sEmail = UserObj.mail sCompany = UserObj.company sOfficePhone = UserObj.telephoneNumber sOfficeFax = UserObj.facsimileTelephoneNumber sStreetAddress = UserObj.streetAddress sSt = UserObj.st sL = UserObj.l sPostalCode = UserObj.postalCode sDepartment = UserObj.department end if 'drop mobile number if personal if left(sMobile,1) = "p" then sMobile = "" 'create the htm file and start adding content Set CreateSigFile = FileSysObj.CreateTextFile (SigFile, 8, False) Set CreateSigFileTxt = FileSysObj.CreateTextFile (SigFileTxt, 8, False) 'html head CreateSigFile.WriteLine "" CreateSigFile.WriteLine "Outlook Signature" CreateSigFile.WriteLine "" CreateSigFile.WriteLine "" CreateSigFile.WriteLine ""<br /> CreateSigFile.WriteLine "p {font-family:Calibri, Arial; font-size:11pt; color:#000; vertical-align:text-top;}"<br /> CreateSigFile.WriteLine ".disclaimer {font-size:8pt; color:#999;}"<br /> CreateSigFile.WriteLine ".name {font-size:12pt; color:#000}"<br /> CreateSigFile.WriteLine ".company {font-size:11pt; color:#000}"<br /> CreateSigFile.WriteLine ".title {font-size:11pt; color:#666;}"'<br /> CreateSigFile.WriteLine "" 'html body CreateSigFile.WriteLine "" CreateSigFile.WriteLine " " & sFullName & " " & sDepartment & " " CreateSigFile.WriteLine "" & sPosition & " " CreateSigFile.WriteLine "" & sEmail & " " & s & "" CreateSigFile.WriteLine " & " CreateSigFile.WriteLine " " & sCompany & " " CreateSigFile.WriteLine " " & sStreetAddress & " " CreateSigFile.WriteLine " " & sL & " " CreateSigFile.WriteLine " " & sSt & " " & sPostalCode & " " CreateSigFile.WriteLine "P: " & sOfficePhone & " " CreateSigFile.WriteLine "M: "& sMobile & " " CreateSigFile.WriteLine "F: " & sOfficeFax & "" CreateSigFile.WriteLine " & " CreateSigFile.WriteLine " & " CreateSigFile.WriteLine "" 'close the signature file CreateSigFile.Close CreateSigFileTxt.WriteLine sFullName CreateSigFileTxt.WriteLine sPosition if not sMobile = "" then CreateSigFileTxt.WriteLine sMobile & " " & LCase(sEmail) else CreateSigFileTxt.WriteLine LCase(sEmail) end if CreateSigFileTxt.WriteLine "" CreateSigFileTxt.WriteLine sCompany CreateSigFileTxt.WriteLine "Address" CreateSigFileTxt.WriteLine sOfficePhone CreateSigFileTxt.WriteLine sURLWWW CreateSigFileTxt.WriteLine "" CreateSigFileTxt.WriteLine "" 'close the txt signature file CreateSigFileTxt.Close if not DevMode then 'Set the signature as default for new and reply Set objWord = CreateObject("Word.Application") Set objSignatureObjects = objWord.EmailOptions.EmailSignature objSignatureObjects.NewMessageSignature = sUserName objSignatureObjects.ReplyMessageSignature = sUserName objWord.Quit End If
Bedders Posted June 12, 2018 Posted June 12, 2018 You just need to check for the value of sMobile before writing this, in your html body section. CreateSigFile.WriteLine "M: "& sMobile & " " This is why you get the "M: " written out - it writes the string, but has nothing to write for sMobile so leaves that blank. Have you considered IsNullOrEmpty? Technet Article.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now