Solved

3 Autoreply codes need to be changed as to get the firstname in the body.

Posted on 2009-04-03
4
164 Views
Last Modified: 2012-05-06
Hi,

3 Autoreply codes need to be changed as to get the firstname in the body.

Code from Chris...

Need the change as
Hi Firstname,
at present i get
Hi,Firstname

Regards
Sharath
Sub AutoReply1()
    Dim olkItem As Object, _
        olkMsg As Outlook.MailItem, _
        olkRecip As Object, _
        arrLines As Variant, _
        varLine As Variant, _
        strName As String
    For Each olkItem In Application.ActiveExplorer.Selection
        If olkItem.Class = olMail Then
            arrLines = Split(olkItem.Body, vbCrLf)
            For Each varLine In arrLines
                If InStr(1, varLine, "User:") Then
                    strName = Mid(varLine, InStr(1, varLine, "\") + 1)
                    strName = Trim(strName)
                    strName = Replace(strName, vbCr, "")
                    strName = Replace(strName, vbLf, "")
                    Set olkMsg = Application.CreateItem(olMailItem)
                    With olkMsg
                        Set olkRecip = .Recipients.Add(strName)
                        olkRecip.Resolve
                        strName = Mid(olkRecip.Name, 1, InStr(1, olkRecip.Name, " ") - 1)
                        'Change the subject on the next line'
                        .Subject = "Retricted File\Application"
                        .BodyFormat = olFormatHTML
                        'Change the message body on the next line'
                        .HTMLBody = "Hi, " & strName & "<br><br> Please reply back once removed.<br><br>Regards<br>Sharath<br>(I)<br><hr><br>" & olkItem.HTMLBody
                        .Display
                    End With
                    Exit For
                End If
            Next
        End If
    Next
    Set olkItem = Nothing
    Set olkMsg = Nothing
    Set olkRecip = Nothing
End Sub
 
 
Sub AutoReply2()
    Dim olkItem As Object, _
        olkMsg As Outlook.MailItem, _
        olkRecip As Object, _
        arrLines As Variant, _
        varLine As Variant, _
        strName As String
    For Each olkItem In Application.ActiveExplorer.Selection
        If olkItem.Class = olMail Then
            arrLines = Split(olkItem.Body, vbCrLf)
            For Each varLine In arrLines
                If InStr(1, varLine, "User:") Then
                    strName = Mid(varLine, InStr(1, varLine, "\") + 1)
                    strName = Trim(strName)
                    strName = Replace(strName, vbCr, "")
                    strName = Replace(strName, vbLf, "")
                    Set olkMsg = Application.CreateItem(olMailItem)
                    With olkMsg
                        Set olkRecip = .Recipients.Add(strName)
                        olkRecip.Resolve
                        strName = Mid(olkRecip.Name, 1, InStr(1, olkRecip.Name, " ") - 1)
                        'Change the subject on the next line'
                        .Subject = "Restricted USB Usage"
                        .BodyFormat = olFormatHTML
                        'Change the message body on the next line'
                        .HTMLBody = "Hi, " & strName & "<br><br>checks.<br><br>Regards<br>Sharath <br>(I)<br><hr><br>" & olkItem.HTMLBody
                        .Display
                    End With
                    Exit For
                End If
            Next
        End If
    Next
    Set olkItem = Nothing
    Set olkMsg = Nothing
    Set olkRecip = Nothing
End Sub
 
 
Sub AutoReply3()
Const FilePathandName As String = "D:\Machinename.txt"
'Const FilePathandName As String = "c:\deleteme\mcusers.txt"
Dim inputFile As Object
Dim fso As Object
Dim dic As Object
Dim arrCount As Long
Dim strName As String
Dim strMC As String
Dim strAddy As String
    Dim olkItem As Object, _
        olkMsg As Outlook.MailItem, _
        olkRecip As Object, _
        arrLines As Variant, _
        varLine As Variant, _
        strTo As String, _
        arrTo() As String
    
    Set fso = CreateObject("scripting.filesystemobject")
    If fso.FileExists(FilePathandName) Then
        Set inputFile = fso.OpenTextFile(FilePathandName, 1, TristateTrue)
        strTo = inputFile.ReadAll
        arrTo = Split(strTo, vbCrLf)
        Set inputFile = Nothing
    Else
        Set inputFile = Nothing
        strTo = ""
    End If
    Set fso = Nothing
    If strTo <> "" Then
        Set dic = CreateObject("scripting.dictionary")
        For arrCount = 0 To UBound(arrTo)
            strName = arrTo(arrCount)
            If InStr(strName, ";") > 0 Then
                strMC = LCase(Left(strName, InStr(strName, ";") - 1))
                strAddy = LCase(Right(strName, Len(strName) - InStr(strName, ";")))
                If Not dic.Exists(strMC) Then
                    dic.Add strMC, strAddy
                End If
            End If
        Next
    End If
    For Each olkItem In Application.ActiveExplorer.Selection
        If olkItem.Class = olMail Then
            arrLines = Split(olkItem.Body, vbCrLf)
            For Each varLine In arrLines
                If InStr(1, varLine, "Machine:") Then
                    strName = LCase(Mid(varLine, InStr(1, varLine, ":") + 1))
                    strName = Trim(strName)
                    strName = Replace(strName, vbCr, "")
                    strName = Replace(strName, vbLf, "")
                    If dic.Exists(strName) Then
                        strTo = dic(strName)
                    Else
                        strTo = ""
                    End If
                    If strTo = "" Then Exit For
                    Set olkMsg = Application.CreateItem(olMailItem)
                    With olkMsg
                        Set olkRecip = .Recipients.Add(strTo)
                        olkRecip.Resolve
                        If Not olkRecip.Resolved Then
                            strName = Mid(strTo, 1, InStr(1, strTo, "@") - 1)
                            If InStr(strName, ".") > 0 Then strName = Left(strName, InStr(strName, ".") - 1)
                            If InStr(strName, " ") > 0 Then strName = Left(strName, InStr(strName, " ") - 1)
                        Else
                            strName = Mid(olkRecip.Name, 1, InStr(1, olkRecip.Name, " ") - 1)
                        End If
                        strName = UCase(Left(strName, 1)) & LCase(Right(strName, Len(strName) - 1))
                        'Change the subject on the next line'
                        .Subject = "Subject data"
                        .BodyFormat = olFormatHTML
                        'Change the message body on the next line'
                        .HTMLBody = "Hi " & strName & ",<br><br>This is the matter in the body.<br><br>Regards<br>Sharath<br>(1)<br><hr><br>" & olkItem.HTMLBody
                        .Display
                    End With
                    Exit For
                End If
            Next
        End If
    Next
    Set olkItem = Nothing
    Set olkMsg = Nothing
    Set olkRecip = Nothing
End Sub

Open in new window

0
Comment
Question by:bsharath
  • 2
  • 2
4 Comments
 
LVL 59

Accepted Solution

by:
Chris Bottomley earned 500 total points
ID: 24057425
Didn't realise these were the ones you were interested in!, thought it was a different application.

Any better?

Chris
Sub AutoReply1()
    Dim olkItem As Object, _
        olkMsg As Outlook.MailItem, _
        olkRecip As Object, _
        arrLines As Variant, _
        varLine As Variant, _
        strName As String
    For Each olkItem In Application.ActiveExplorer.Selection
        If olkItem.Class = olMail Then
            arrLines = Split(olkItem.Body, vbCrLf)
            For Each varLine In arrLines
                If InStr(1, varLine, "User:") Then
                    strName = Mid(varLine, InStr(1, varLine, "\") + 1)
                    strName = Trim(strName)
                    strName = Replace(strName, vbCr, "")
                    strName = Replace(strName, vbLf, "")
                    Set olkMsg = Application.CreateItem(olMailItem)
                    With olkMsg
                        Set olkRecip = .Recipients.Add(strName)
                        olkRecip.Resolve
                        strName = Mid(olkRecip.Name, 1, InStr(1, olkRecip.Name, " ") - 1)
                        'Change the subject on the next line'
                        .Subject = "Retricted File\Application"
                        .BodyFormat = olFormatHTML
                        'Change the message body on the next line'
                        .HTMLBody = "Hi " & strName & ",<br><br> Please reply back once removed.<br><br>Regards<br>Sharath<br>(I)<br><hr><br>" & olkItem.HTMLBody
                        .Display
                    End With
                    Exit For
                End If
            Next
        End If
    Next
    Set olkItem = Nothing
    Set olkMsg = Nothing
    Set olkRecip = Nothing
End Sub
 
 
Sub AutoReply2()
    Dim olkItem As Object, _
        olkMsg As Outlook.MailItem, _
        olkRecip As Object, _
        arrLines As Variant, _
        varLine As Variant, _
        strName As String
    For Each olkItem In Application.ActiveExplorer.Selection
        If olkItem.Class = olMail Then
            arrLines = Split(olkItem.Body, vbCrLf)
            For Each varLine In arrLines
                If InStr(1, varLine, "User:") Then
                    strName = Mid(varLine, InStr(1, varLine, "\") + 1)
                    strName = Trim(strName)
                    strName = Replace(strName, vbCr, "")
                    strName = Replace(strName, vbLf, "")
                    Set olkMsg = Application.CreateItem(olMailItem)
                    With olkMsg
                        Set olkRecip = .Recipients.Add(strName)
                        olkRecip.Resolve
                        strName = Mid(olkRecip.Name, 1, InStr(1, olkRecip.Name, " ") - 1)
                        'Change the subject on the next line'
                        .Subject = "Restricted USB Usage"
                        .BodyFormat = olFormatHTML
                        'Change the message body on the next line'
                        .HTMLBody = "Hi " & strName & ",<br><br>checks.<br><br>Regards<br>Sharath <br>(I)<br><hr><br>" & olkItem.HTMLBody
                        .Display
                    End With
                    Exit For
                End If
            Next
        End If
    Next
    Set olkItem = Nothing
    Set olkMsg = Nothing
    Set olkRecip = Nothing
End Sub
 
 
Sub AutoReply3()
Const FilePathandName As String = "D:\Machinename.txt"
'Const FilePathandName As String = "c:\deleteme\mcusers.txt"
Dim inputFile As Object
Dim fso As Object
Dim dic As Object
Dim arrCount As Long
Dim strName As String
Dim strMC As String
Dim strAddy As String
    Dim olkItem As Object, _
        olkMsg As Outlook.MailItem, _
        olkRecip As Object, _
        arrLines As Variant, _
        varLine As Variant, _
        strTo As String, _
        arrTo() As String
    
    Set fso = CreateObject("scripting.filesystemobject")
    If fso.FileExists(FilePathandName) Then
        Set inputFile = fso.OpenTextFile(FilePathandName, 1, TristateTrue)
        strTo = inputFile.ReadAll
        arrTo = Split(strTo, vbCrLf)
        Set inputFile = Nothing
    Else
        Set inputFile = Nothing
        strTo = ""
    End If
    Set fso = Nothing
    If strTo <> "" Then
        Set dic = CreateObject("scripting.dictionary")
        For arrCount = 0 To UBound(arrTo)
            strName = arrTo(arrCount)
            If InStr(strName, ";") > 0 Then
                strMC = LCase(Left(strName, InStr(strName, ";") - 1))
                strAddy = LCase(Right(strName, Len(strName) - InStr(strName, ";")))
                If Not dic.Exists(strMC) Then
                    dic.Add strMC, strAddy
                End If
            End If
        Next
    End If
    For Each olkItem In Application.ActiveExplorer.Selection
        If olkItem.Class = olMail Then
            arrLines = Split(olkItem.Body, vbCrLf)
            For Each varLine In arrLines
                If InStr(1, varLine, "Machine:") Then
                    strName = LCase(Mid(varLine, InStr(1, varLine, ":") + 1))
                    strName = Trim(strName)
                    strName = Replace(strName, vbCr, "")
                    strName = Replace(strName, vbLf, "")
                    If dic.Exists(strName) Then
                        strTo = dic(strName)
                    Else
                        strTo = ""
                    End If
                    If strTo = "" Then Exit For
                    Set olkMsg = Application.CreateItem(olMailItem)
                    With olkMsg
                        Set olkRecip = .Recipients.Add(strTo)
                        olkRecip.Resolve
                        If Not olkRecip.Resolved Then
                            strName = Mid(strTo, 1, InStr(1, strTo, "@") - 1)
                            If InStr(strName, ".") > 0 Then strName = Left(strName, InStr(strName, ".") - 1)
                            If InStr(strName, " ") > 0 Then strName = Left(strName, InStr(strName, " ") - 1)
                        Else
                            strName = Mid(olkRecip.Name, 1, InStr(1, olkRecip.Name, " ") - 1)
                        End If
                        strName = UCase(Left(strName, 1)) & LCase(Right(strName, Len(strName) - 1))
                        'Change the subject on the next line'
                        .Subject = "Subject data"
                        .BodyFormat = olFormatHTML
                        'Change the message body on the next line'
                        .HTMLBody = "Hi " & strName & ",<br><br>This is the matter in the body.<br><br>Regards<br>Sharath<br>(1)<br><hr><br>" & olkItem.HTMLBody
                        .Display
                    End With
                    Exit For
                End If
            Next
        End If
    Next
    Set olkItem = Nothing
    Set olkMsg = Nothing
    Set olkRecip = Nothing
End Sub

Open in new window

0
 
LVL 11

Author Comment

by:bsharath
ID: 24057449
0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 24057473
I should have expected that!  I'll look in a little while.

Chris
0
 
LVL 11

Author Comment

by:bsharath
ID: 24057486
Thanks

Can you post the solution from here to this Q...
http://www.experts-exchange.com/Software/Office_Productivity/Groupware/Outlook/Q_24238013.html
So i can close. As you have solved that issue also in this code change itsself... :-)))
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This process describes the steps required to Import and Export data from and to .pst files using Exchange 2010. We can use these steps to export data from a user to a .pst file, import data back to the same or a different user, or even import data t…
Following basic email etiquette rules will help you write a professional email and achieve a good, lasting impression with your contacts.
The view will learn how to download and install SIMTOOLS and FORMLIST into Excel, how to use SIMTOOLS to generate a Monte Carlo simulation of 30 sales calls, and how to calculate the conditional probability based on the results of the Monte Carlo …
CodeTwo Sync for iCloud (http://www.codetwo.com/sync-for-icloud?sts=6554) automatically synchronizes your Outlook 2016, 2013, 2010 or 2007 folders with iCloud folders available via iCloud Control Panel. This lets you automatically sync them with…

816 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

7 Experts available now in Live!

Get 1:1 Help Now