PHP/Mail: Difference between revisions
From charlesreid1
| Line 34: | Line 34: | ||
See [https://unix.stackexchange.com/questions/104954/how-to-allow-outgoing-smtp-on-iptables-debian-linux#104957] | See [https://unix.stackexchange.com/questions/104954/how-to-allow-outgoing-smtp-on-iptables-debian-linux#104957] | ||
==Editing php.ini== | |||
No smtp settings needed in the php.ini file... | |||
See [https://stackoverflow.com/questions/17726195/phpmailer-php-ini-configurations] | |||
Do need to enable PHP OpenSSL support though: in php.ini, add | |||
<pre> | |||
[PHP_OPENSSL] | |||
extension=php_openssl.dll | |||
</pre> | |||
See [https://stackoverflow.com/questions/11318578/sending-an-email-using-phpmailer-and-gmail-smtp] | |||
==Editing PHPMailer Settings== | |||
Need to edit the file class.smtp.php and put your SMTP credentials there. (I think.) | |||
==Using PHPMailer== | ==Using PHPMailer== | ||
Revision as of 10:58, 28 October 2017
Sending email with PHP:
https://stackoverflow.com/questions/14456673/sending-email-with-php-from-an-smtp-server#14456761
Procedure:
- Open port 465
- Put PHPMailer on your PHP include path
- From the PHP script you want to send email from, include PHPMailer
- Drop in your SMTP credentials
- Now you're able to send off emails
Namecheap:
- Username: your email address
- Password: password for this email account
- Incoming/outgoing servers name: mail.privateemail.com
- Incoming server type: IMAP or POP3
- Incoming server (IMAP): 993 port for SSL
- Incoming server (POP3): 995 port for SSL
- Outgoing server (SMTP): 465 port for SSL
Installing PHPMailer
Visit PHPMailer: https://github.com/PHPMailer/PHPMailer
Copy the contents of the PHPMailer folder into one of the include_path directories specified in your PHP configuration
Opening Port
The following iptables rule will keep track of outgoing packets and will allow corresponding return packets - necessary for SMTP connections, because you want to be able to receive the "okay, data received" signal from the server you're sending mail out to.
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
See [1]
Editing php.ini
No smtp settings needed in the php.ini file...
See [2]
Do need to enable PHP OpenSSL support though: in php.ini, add
[PHP_OPENSSL] extension=php_openssl.dll
See [3]
Editing PHPMailer Settings
Need to edit the file class.smtp.php and put your SMTP credentials there. (I think.)
Using PHPMailer
<?php ////////////////////////////////////////////////////////////// // Include PHP mailer stuff use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'path/to/PHPMailer/src/Exception.php'; require 'path/to/PHPMailer/src/PHPMailer.php'; require 'path/to/PHPMailer/src/SMTP.php'; ////////////////////////////////////////////////////////////// // Set SMTP credentials $mail = new PHPMailer(); $mail->IsSMTP(); $mail->CharSet = 'UTF-8'; $mail->Host = "mail.example.com"; // SMTP server example $mail->SMTPDebug = 0; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->Port = 25; // set the SMTP port for the GMAIL server $mail->Username = "username"; // SMTP account username example $mail->Password = "password"; // SMTP account password example ?>