I know that services like SendGrid already have built-in plugins for this. But I want to build my own, custom, module for this.

Reason why I am doing this is my application uses several different smtp servers specified by user.

Is it even feasible to create one module for different smtp servers?

有帮助吗?

解决方案

Absolutely! It's relatively simple too, at the most basic level you do the following:

  • Assign every email you send a unique id, in the email place a reference to a script on your server with the unique id. (e.g. <img src="https://example.com/img?id=1 >)
  • When /img?id=N is called have your code log the id and then serve the image.

A more concrete example in PHP would look something like:

Mail Sender:

$img = '<img src="https://example.com/img.php?id=' . generate_email_id() . '">';
mail("test@example.com", "This is a test.", "Hello! I hope this test works!" . $img);

img.php:

log_email_by_id($_GET['id']);
header("Content-type: image/jpeg");
readfile("pixel.jpg");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top