Vba 在收到的outlook 2016电子邮件中填写Excel表格,并使用添加的票证号修改电子邮件主题

Vba 在收到的outlook 2016电子邮件中填写Excel表格,并使用添加的票证号修改电子邮件主题,vba,excel,email,outlook,Vba,Excel,Email,Outlook,我正在尝试用outlook和excel创建一个简单的跟踪/票务系统。我正在使用Office 2016。以下是我想做的: 收到新电子邮件时,在excel中启动宏,检查是否为新电子邮件或回复/fwd。如果是新的,excel工作表将创建一个新条目,并分配一个票号。现在,我想将此票证号码附加到电子邮件主题,并向发件人发送自动回复 我对excel vba有一些想法,但我正在努力处理Outlook部分。如能给予正确的帮助或推动,我们将不胜感激。我试图从在线教程中提取一些信息,但我觉得有点不知所措。谢谢你们的

我正在尝试用outlook和excel创建一个简单的跟踪/票务系统。我正在使用Office 2016。以下是我想做的:

收到新电子邮件时,在excel中启动宏,检查是否为新电子邮件或回复/fwd。如果是新的,excel工作表将创建一个新条目,并分配一个票号。现在,我想将此票证号码附加到电子邮件主题,并向发件人发送自动回复


我对excel vba有一些想法,但我正在努力处理Outlook部分。如能给予正确的帮助或推动,我们将不胜感激。我试图从在线教程中提取一些信息,但我觉得有点不知所措。谢谢你们的帮助,伙计们

下面是一段代码,可以帮助您从outlook访问邮件的主题行。在应用代码之前,请不要忘记添加“Microsoft outlook 15.0对象库”的引用

您需要做的是在访问主题行之后,您可以通过“FW:”或“RE:”将其拆分,以检查转发的邮件或回复的邮件

sub MailsImport()

Dim Folder As Outlook.MAPIFolder
Dim sFolders As Outlook.MAPIFolder
Dim iRow As Integer, oRow As Integer
Dim MailBoxName As String, Pst_Folder_Name  As String
Dim ProfileName As String

ProfileName = "Enter the outlook profile mail address" 'Ex: test.user@hotmail.com

'Mailbox or PST Main Folder Name (As how it is displayed in your Outlook Session)
MailBoxName = ProfileName

'Mailbox Folder or PST Folder Name (As how it is displayed in your Outlook Session)
Pst_Folder_Name = "Enter the folder name in your outlook profile" 'Example: "Inbox" or "Sent Items"

'To directly a Folder at a high level
'Set Folder = Outlook.Session.Folders(MailBoxName).Folders(Pst_Folder_Name)

'To access a main folder or a subfolder (level-1)
For Each Folder In Outlook.Session.Folders(MailBoxName).Folders
    If VBA.UCase(Folder.Name) = VBA.UCase(Pst_Folder_Name) Then GoTo Label_Folder_Found
    For Each sFolders In Folder.Folders
        If VBA.UCase(sFolders.Name) = VBA.UCase(Pst_Folder_Name) Then
            Set Folder = sFolders
            GoTo Label_Folder_Found
        End If
    Next sFolders
Next Folder

Label_Folder_Found:
 If Folder.Name = "" Then
    MsgBox "Invalid Data in Input"
    GoTo End_Lbl1:
End If

'Read Through each Mail and export the details to Excel for Email Archival
ThisWorkbook.Sheets(1).Activate
Folder.Items.Sort "Received"

'Insert Column Headers
'ThisWorkbook.Sheets(1).Cells(1, 1) = "Sender"
ThisWorkbook.Sheets(1).Cells(1, 2) = "Subject"
'ThisWorkbook.Sheets(1).Cells(1, 3) = "Date"
'ThisWorkbook.Sheets(1).Cells(1, 4) = "Size"
'ThisWorkbook.Sheets(1).Cells(1, 5) = "EmailID"
'ThisWorkbook.Sheets(1).Cells(1, 1) = "Body"

'Export eMail Data from PST Folder to Excel with date and time
oRow = 1
For iRow = 1 To Folder.Items.Count
    'If condition to import mails received in last 60 days
    'To import all emails, comment or remove this IF condition
    If VBA.DateValue(VBA.Now) - VBA.DateValue(Folder.Items.Item(iRow).ReceivedTime) <= 60 Then
       oRow = oRow + 1
       ThisWorkbook.Sheets(1).Cells(oRow, 1).Select
       'ThisWorkbook.Sheets(1).Cells(oRow, 1) = Folder.Items.Item(iRow).SenderName
       ThisWorkbook.Sheets(1).Cells(oRow, 2) = Folder.Items.Item(iRow).Subject
       'ThisWorkbook.Sheets(1).Cells(oRow, 3) = Folder.Items.Item(iRow).ReceivedTime
       'ThisWorkbook.Sheets(1).Cells(oRow, 4) = Folder.Items.Item(iRow).Size
       'ThisWorkbook.Sheets(1).Cells(oRow, 5) = Folder.Items.Item(iRow).SenderEmailAddress
       'ThisWorkbook.Sheets(1).Cells(oRow, 1) = Folder.Items.Item(iRow).Body
    End If
Next iRow
Set Folder = Nothing
Set sFolders = Nothing
End_Lbl1:
End sub
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage 
$SmtpServer = "your smtp servername" #Ex: mail1.hotmail.com
$SmtpClient.host = $SmtpServer 
$MailMessage.From = "Your mail id" #Ex: test.user@hotmail.com
$MailMessage.To.add("Mail id of the recipient") 
$MailMessage.Subject = "subject line for your mail"
$MailMessage.IsBodyHtml = 0

$MailMessage.Body = "//body of the mail
//body
//body
//body
//body"
$SmtpClient.Send($MailMessage)