This is a theoretical question but any specific technical knowledge that could help will also be appreciated.
I am an IT Assistant with not much knowledge in programming (apart from EasyPattern and super-simple batch files) but have been given an opportunity to start getting into it by having been given a task to create a step in our document management system which is vaguely defined by the title of this question - An automated email response system to incoming faxes.

CONTEXT:
So, we have incoming faxes with short digit codes on them, these code correlate to identifying information in our database (relevantly; email addresses). In a watched folder environment we have software that upon auto-acknowledging these fax/image files being dropped into a designated incoming location (from a fax server) it initiates Microsoft Digital Imaging (MODI, runs in the background) to find these codes (using OCR, Optical Character Recognition) and places them into CSV files (one .csv file per code per fax page). Our database admin assures me that he can have the email addresses that correlate to the codes automatically placed into their correlating csv file.

GOAL:
It is from this point that I am being asked to find a way to have a universal unchanging email message ("We have received your fax") automatically sent to those email addresses. Upon a "way" being known, I am then to actually accomplish it.

QUESTION:
How to do this? As I said, a valid theoretical answer will suffice, for that will tell me how it can be done, which would in turn tell me what to learn, which would in turn tell me where to look.

WHERE I'M AT NOW:
I understand VBA to be a programming model within an 'event-driven' paradigm and that VBA programming projects are possible and supported in both Microsoft Outlook and Access. Does herein lie my answer? Can VBA used to accomplish this? (maybe auto import the email addresses from the csv file into the "To:" field of a outgoing email?) I'm hoping it'll be easier since the message can always stay the same (something along the lines of: We received your message). I'm reading two text books that introduce the reader to VBA in Access with one, and VBA in Outlook with the other.

I hope this message makes sense, this whole question might be naive, incoherent, or maybe even outright ignorant. But any patient and understanding response would be GREATLY appreciated.

Dani AI

Generated

A focused, practical plan that sits between ’s VBA prototyping idea and ’s vb.net suggestion will solve this reliably. Use a small watcher process (console app, scheduled script, or Windows Service) that detects completed CSVs, parses validated addresses, sends a single confirmation message per recipient via an authenticated mail relay or API, logs every send, and archives the processed files. Outlook automation can work for quick local testing but is not recommended for unattended server-side automation.

Key reliability points:

  • Detect file completion (use a temporary name or retry-open test) to avoid partial reads.
  • Validate and deduplicate addresses before sending.
  • Use an SMTP client or provider API (authenticated relay, Graph API/EWS for Exchange/Office365) instead of automating an Outlook profile.
  • Implement retry/backoff, explicit error logging, and a durable audit trail (timestamp, recipient, file processed).
  • Move processed CSVs to an archive or error folder to prevent reprocessing; record an idempotency token if duplicates are possible.
  • Respect rate limits and privacy (send one message per address rather than exposing multiple addresses in To/CC).

Minimal conceptual example (C#-style pseudocode using a modern SMTP library):

var watcher = new FileSystemWatcher(incomingFolder);
watcher.Created += (s,e) => {
    if (!IsFileReady(e.FullPath)) return;
    var addresses = ParseCsv(e.FullPath).Where(IsValidEmail).Distinct();
    foreach(var addr in addresses) {
        var msg = BuildMessage("no-reply@company.com", addr, "Fax received", "We have received your fax.");
        smtpClient.Send(msg);
        LogSend(e.FullPath, addr, DateTime.UtcNow);
    }
    MoveToArchive(e.FullPath);
};
watcher.EnableRaisingEvents = true;

Start with a prototype (PowerShell or VBA) to exercise the pipeline, then harden into a small VB.NET/C# service using a robust mail library (MailKit or similar) and add monitoring/alerts before deploying to production.

I would not recommend VBA. I suggest vb.net. Before I retired I would have just written this up in vbScript with one entry per email written to a log file as

2013-12-09 13:49:27 confirmation sent to <email address>

But you would probably find vb.net with a folder watch component easier. You could then write to a log file as well as a listbox or textbox control for visual feedback.

This is a programming question so I am moving it to the programming thread.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.