Is there a way to passthru SMTP sendings to another server?

✔ Recommended Answer

I just port-forwarded the requests from one to another server with iptables.

sysctl net.ipv4.ip_forward=1iptables -t nat -A PREROUTING -s 1xx.xx.xx.xx -p tcp --dport 587 -j DNAT --to-destination 2xx.xx.xx.xx:587iptables -t nat -A POSTROUTING -j MASQUERADE

Just replaced the placeholders with my two IP addresses and use the new server as relay for sending mails with smtp.



Answered By: shroomlife

Method #2

Yes, it is possible to pass SMTP sendings to another server in PHP by using a technique called SMTP relay.

SMTP relay involves setting up an intermediary SMTP server that accepts incoming email messages and then relays them to the final destination server. This allows you to send email messages from PHP to the intermediary SMTP server, which then forwards them on to the destination server.

To implement SMTP relay in PHP, you can use a third-party library or package that provides SMTP relay functionality. Here is an example using the popular PHPMailer library:

// Include the PHPMailer library require 'vendor/autoload.php'; // Create a new PHPMailer instance $mail = new PHPMailer\PHPMailer\PHPMailer(); // Configure the SMTP settings for the intermediary server $mail->isSMTP(); $mail->Host = ''; $mail->Port = 587; $mail->SMTPSecure = 'tls'; $mail->SMTPAuth = true; $mail->Username = ''; $mail->Password = 'password'; // Configure the email message $mail->setFrom('', 'Sender Name'); $mail->addAddress('', 'Recipient Name'); $mail->Subject = 'Test Email'; $mail->Body = 'This is a test email message.'; // Send the email message through the intermediary SMTP server if (!$mail->send()) { echo 'Error: ' . $mail->ErrorInfo; } else { echo 'Email sent successfully.'; }

In this example, we use the PHPMailer library to set up an SMTP connection to an intermediary server at We configure the SMTP authentication credentials, and then configure the email message using the setFrom(), addAddress(), Subject, and Body methods. Finally, we use the send() method to send the email message through the intermediary SMTP server.

Note that SMTP relay requires access to an intermediary SMTP server, which may involve additional setup and configuration. Additionally, SMTP relay can potentially be abused for sending spam or phishing emails, so it is important to use SMTP relay responsibly and in compliance with relevant laws and regulations.


Most Popular

PhpStorm, return value is expected to be 'A', 'object' returned

Remove Unicode Zero Width Space PHP

Laravel file upload returns forbidden 403, file permission is 700 not 755