My ISP
account requires that I send a username & password for outbound SMTP
mail.
How do I get PHP
to use this when executing php.mail()?
The php.ini
file only contains entries for the server (SMTP= )
and From: (sendmail_from= )
.
My ISP
account requires that I send a username & password for outbound SMTP
mail.
How do I get PHP
to use this when executing php.mail()?
The php.ini
file only contains entries for the server (SMTP= )
and From: (sendmail_from= )
.
PHP mail()
command does not support authentication. Your options:
I apply following details on php.ini file. its works fine.
SMTP = smtp.example.com
smtp_port = 25
username = info@example.com
password = yourmailpassord
sendmail_from = info@example.com
These details are same as on outlook settings.
Use Fake sendmail for Windows to send mail.
sendmail
in C:\\wamp\\
.sendmail
folder: sendmail.exe
, libeay32.dll
, ssleay32.dll
and sendmail.ini
.C:\\wamp\\sendmail\\sendmail.ini
:smtp_server=smtp.gmail.com smtp_port=465 auth_username=user@gmail.com auth_password=your_password
The above will work against a Gmail account. And then configure php.ini:
sendmail_path = \"C:\\wamp\\sendmail\\sendmail.exe -t\"
Now, restart Apache, and that is basically all you need to do.
PHP does have authentication on the mail-command!
The following is working for me on WAMPSERVER (windows, php 5.2.17)
php.ini
[mail function]
; For Win32 only.
SMTP = mail.yourserver.com
smtp_port = 25
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = you@yourserver.com
I prefer the PHPMailer tool as it doesn\'t require PEAR. But either way, you have a misunderstanding: you don\'t want a PHP-server-wide setting for the SMTP user and password. This should be a per-app (or per-page) setting. If you want to use the same account across different PHP pages, add it to some kind of settings.php file.
After working all day on this, I finally found a solution. Here\'s how I send from Windows XP with WAMP.
<?php $message = \"test message body\"; $result = mail(\'recipient@some-domain.com\', \'message subject\', $message); echo \"result: $result\"; ?>
Reference:
/etc/postfix/main.cf
to read:#Relay config
relayhost = smtp.server.net
smtp_use_tls=yes
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_sasl_security_options = noanonymous
/etc/postfix/sasl_passwd
, enter:smtp.server.net username:password
Type # /usr/sbin/postmap sasl_passwd
Then run: service postfix reload
Now PHP will run mail as usual with the sendmail -t -i
command and Postfix will intercept it and relay it to your SMTP server that you provided.
Use Mail::factory in the Mail PEAR package. Example.
These answers are outdated and depreciated. Best practice..
composer require phpmailer/phpmailer
The next on your sendmail.php file just require the following
# use namespace
use PHPMailer\\PHPMailer\\PHPMailer;
# require php mailer
require_once \"../vendor/autoload.php\";
//PHPMailer Object
$mail = new PHPMailer;
//From email address and name
$mail->From = \"from@yourdomain.com\";
$mail->FromName = \"Full Name\";
//To address and name
$mail->addAddress(\"recepient1@example.com\", \"Recepient Name\");
$mail->addAddress(\"recepient1@example.com\"); //Recipient name is optional
//Address to which recipient will reply
$mail->addReplyTo(\"reply@yourdomain.com\", \"Reply\");
//CC and BCC
$mail->addCC(\"cc@example.com\");
$mail->addBCC(\"bcc@example.com\");
//Send HTML or Plain Text email
$mail->isHTML(true);
$mail->Subject = \"Subject Text\";
$mail->Body = \"<i>Mail body in HTML</i>\";
$mail->AltBody = \"This is the plain text version of the email content\";
if(!$mail->send())
{
echo \"Mailer Error: \" . $mail->ErrorInfo;
}
else
{
echo \"Message has been sent successfully\";
}
This can be configure how ever you like..
Considering one answer in this question, In PHP 4 the PEAR Mail package is typically already installed, and this really simple tutorial shows you the few lines of code that you need to add to your php file http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm
\"SMTP = localhost\",
\"smtp_port = 25\",
\"; sendmail_path = \".
Credit: How to configure WAMP (localhost) to send email using Gmail?