2016-11-04 3 views
-1

Я новичок в макросе Outlook.Outlook макрос для отправки другой электронной почты, если 1-й адрес электронной почты не отвечает

Я ранее разработал макрос для отправки электронных писем путем прикрепления файлов и отправки определенных писем.

Можно ли отправить другое напоминание по электронной почте с помощью Outlook vba, если получатель никогда не отвечает на мое первое электронное письмо?

Sub MonthlyInterco() 

mth = Format(DateAdd("m", -1, Date), "mmmyy") 


    Call SendFiles("C:\Users\haha\Desktop\interco\") 

End Sub 
Function SendFiles(fldName As String, Optional FileType As String = "*.*") 



Dim fName As String 
Dim sAttName As String 

Dim olApp As Outlook.Application 
Dim olMsg As Outlook.MailItem 
Dim olAtt As Outlook.Attachments 

Set olApp = Outlook.Application 
Set olMsg = olApp.CreateItem(0) ' email 
Set olAtt = olMsg.Attachments 

' to send all 
fName = Dir(fldName) 

'to send only certain extensions 
'fName = Dir(fldName & FileType) 


    olAtt.Add fldName & "XYZ " & mth & " INTERCO STATEMENT.pdf" 

    Debug.Print fName 
    fName = Dir 


' send message 
With olMsg 
    .Subject = mth & " Interco Reconciliation" 
    .To = "[email protected]" 
    .CC = "[email protected]" 
    .HTMLBody = "Hi all," & "<br /><br /> Attached is " & mth & " interco schedule, kindly reconcile and update us if" & "<br /><br /> 1)  Any discrepancies" & "<br />2)  All amount tie to your interco bal" & "<br /><br /> Thank you." & "<br /><br /> Best Regards," & "<br /> zzz" & "<br /> " 
    .Display 
End With 

End Function 
+0

Я отправил вам письмо X неделю назад. Я получил электронное письмо от вас 4 дня назад. Является ли электронная почта Y ответом на X, ответ на предыдущий адрес электронной почты W или новое письмо, не связанное с каким-либо из моих писем?Обычно ответ содержит заголовок и текст исходного электронного письма. Если вы можете найти этот заголовок, вы можете связать ответ с вашим оригиналом. Outlook свяжет ваши ответы с оригиналом, но не сможет связать свои ответы с вашим оригиналом. Это большая проблема: связывание отправленных и полученных писем. –

+0

Этот ответ, http://stackoverflow.com/a/12146315/973283, создает книгу Excel и выводит сведения о каждом электронном письме в папке «Входящие». Цели состоят в том, чтобы показать вам (1), как выглядит электронное письмо с макросом VBA, и (2) как работать с папкой «Входящие», изучая каждое электронное письмо. Измените этот макрос в соответствии с инструкциями и попробуйте. Изучите вывод и макрос. Какая информация будет доступна для вашего макроса? Как вы найдете заголовок исходного письма в ответ? Как бы настроить макрос в соответствии с вашими потребностями. Например, ваши письма не будут в папке «Входящие»? Они все еще находятся в отправленных элементах. –

+0

Я бы начал с создания списка для каждого человека, которому вы отправляете электронные письма, показывающие отправленные вами письма и электронные письма, которые они отправили вам. Этот список будет полезен при идентификации писем, для которых вы еще не получили ответа, и будет шагом к тому, что вы действительно хотите. –

ответ

0

Существует два основных подхода, которые вы могли бы рассмотреть.

Первый подход - использовать события. Я не обязательно рекомендую этот подход, так как большинству людей нравится какой-то опыт под их поясами, прежде чем заниматься событиями. Вы можете написать рутину и сообщить Outlook, чтобы она выполнялась каждый раз, когда происходит конкретное событие. Например, есть событие отправки электронной почты и событие, полученное по электронной почте. Вы можете написать процедуру, которая выполняется каждый раз, когда вы отправляете электронное письмо. Я бы не слишком много делал в этой рутине, так как вы не хотите замедлять свою нормальную работу. Возможно, вы можете добавить адрес электронной почты времени и получателя в конец текстового файла. Аналогичная процедура может записывать время и адрес электронной почты отправителя при получении электронного письма.

Другая процедура может запускаться один раз в день для обработки этих текстовых файлов. Я бы написал эту процедуру в Excel VBA, чтобы результаты могли быть записаны в рабочие листы, которые помогут вам разработать свои макросы. Этот макрос должен был бы сопоставлять электронные письма, отправленные Джону Доу от писем, полученных от John Doe, и создавать список писем, на которые вы не получили ответа. Приемниками этих писем являются люди, которым вы хотите отправить электронную почту chaser.

Если вышеупомянутый подход обращается к вам, разделите его на его компоненты. Не ищите рутину, которая делает все, что вам нужно, потому что вы ее не найдете. Не отправляйте вопрос, требуя, чтобы рутина была написана для вас, потому что этот сайт предназначен для программистов, чтобы помочь друг другу развиваться; это не бесплатный сайт кодирования.

Поиск событий Outlook. Я не думаю, что помощь в Outlook VBA так же хороша, как и помощь в Excel VBA, но она есть. Найдите примеры двух требуемых процедур. Поиск текстовых файлов. Как вы добавляете к текстовому файлу? Это не сложно. Как вы собираетесь сопоставлять записи в отправляемых и полученных текстовых файлах? Возможно, самой простой отправной точкой является копирование содержимого файла в рабочие листы, которые вы затем сортируете по адресу электронной почты. Кодируйте свои макросы по одному шагу за раз. Если у вас есть трудности с конкретным шагом, обратитесь за помощью. Нет никаких ограничений на количество вопросов, которые вы можете задать, каждый из которых показывает код, который вы попробовали, и объясняет, что не работает, как вы хотите/ожидаете.

Второй подход - это обычная процедура, которая выполняет поиск в папке «Входящие» и «Отправленные» один раз в день и извлекает информацию, записанную процедурами событий. Я уже дал вам ссылку на обычную процедуру, которая выполняет поиск в папке «Входящие» и выводит выбранные свойства каждого письма в книгу. Это может быть скелет рутины, в которой вы нуждаетесь.

Вы можете найти текстовые тела писем, которые вы получите для строк: «[CR] [LF] [CR] [LF] В Пт, 4 ноября 2016 в 13:43 zzzz> написал: [CR] [LF] [CR] [LF]». Почти все ответы на ваши письма будут содержать текст в этом формате, где zzzz будет вашим именем, а xxxx @ yyyy будет вашим адресом электронной почты. Это может помочь в совпадении.

Я попытался дать вам некоторые идеи. Я сомневаюсь, что вы можете достичь 100% идеального соответствия между отправленными и полученными электронными письмами, но если вы будете работать медленно с помощью необходимых шагов, вы можете создать очень полезный набор макросов.

+0

спасибо за то, что нашли время, чтобы объяснить два подхода в деталях! Я подробно изучу ссылку и попробую работать над вторым подходом! :) – koky

Смежные вопросы