Hello guys I have stuck with this problem for a while now. I am trying to send mail from xampp. I have went through several solutions posted here but none of them seem to work still. kind of need someone to point me to the right direction.
so in my php.ini
[mail function]
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = user#gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
I also have the sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" commented with a ;
now in my sendmail.ini
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=user#gmail.com
auth_password=123456
force_sender=shadidhaque2014#gmail.com
P.s: I only have the above code in sendmail.ini
now for the php script I have something very simple:
$send=mail('rzs2009#yahoo.com', 'subject', 'blah blah blah');
if ($send) {
# code..
echo "yes";
}else
{
echo "no";
}
now everytime I try to run the program I get a no. So no email is being sent. Where might I be going wrong.
Thanks in advance.
Modify your code like this:
function smtpmailer($to, $from, $from_name, $subject, $body) {
global $error;
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 0; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->Username = GUSER;
$mail->Password = GPWD;
$mail->SetFrom($from, $from_name);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress($to);
if(!$mail->Send()) {
$error = 'Mail error: '.$mail->ErrorInfo;
return false;
} else {
$error = 'Message sent!';
return true;
}
}
http://www.web-development-blog.com/archives/send-e-mail-messages-via-smtp-with-phpmailer-and-gmail/
Related
I'm trying to send emails with php in local, i have modified php.ini and sendmail.ini but still still doesnt work.
The IDE doesn't even give me Errors or a Warnings like Failed to connect to mailserver at "localhost" port 25 or something like that
php.ini
SMTP=smtp.gmail.com
smtp_port=465
sendmail_from = biagiosani2005#gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
and sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=465
error_logfile=error.log
debug_logfile=debug.log
auth_username=biagiosani2005#gmail.com
auth_password=xxxxxxxx
force_sender=biagiosani2005#gmail.com
<?php
$to = "luciasani2005#gmail.com";
$subject = "this is a subject";
$message = "this is a message";
mail($to, $subject, $message);
?>
It is not SMTP send mail. You have SMTP configurations, it is okay, but your sending way is wrong. You need to use PHPMailer package and to correct script such:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require './PHPMailer-master/src/Exception.php';
require './PHPMailer-master/src/PHPMailer.php';
require './PHPMailer-master/src/SMTP.php';
$html = "<h1>Hello </h1>";
$mail = new PHPMailer(true);
try {
//Server settings
$mail->isSMTP();
$mail->Host = 'smtp.titan.email';
$mail->SMTPAuth = true;
$mail->Username = 'contact#domain.com';
$mail->Password = 'password';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
//Recipients
$mail->setFrom('contact#domain.com', 'domain Team');
$mail->addAddress('receiver1#gmail.com', 'Joe User');
$mail->addAddress('receiver2#gmail.com', 'Joe User');
// Attachments
// Content
$mail->isHTML(true);
$mail->Subject = 'Here is the subject';
$mail->Body = $html;
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
echo true;
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
here are the details
[php.ini]
SMTP = smtp.gmail.com
smtp_port = 465
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
mail.add_x_header=Off
[sendmail.ini]
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=ssl
error_logfile=error.log
debug_logfile=debug.log
auth_username=[email]#gmail.com
auth_password=[email password]
pop3_server=
pop3_username=
pop3_password=
force_sender=[email]#gmail.com
force_recipient=
hostname=smtp.gmail.com
[mail function]
mail('[email]#gmail.com','sample mail','sample content','From: anotheremail#gmail.com');
i have checked smtp settings properly, but its still not working please suggest.
php.ini
[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP=localhost
; http://php.net/smtp-port
;smtp_port=25
sendmail_path = C:/xampp/sendmail/sendmail.exe -t
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me#example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail().
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header=On
; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
;mail.log =
; Log mail to syslog (Event Log on Windows).
;mail.log = syslog
Working For me.
You have to configure SMTP on your server
You can use the googles free SMTP server Pretty easy to setup too.
<?php
$mail = new PHPMailer(true);
//Send mail using gmail
if($send_using_gmail){
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "your-gmail-account#gmail.com"; // GMAIL username
$mail->Password = "your-gmail-password"; // GMAIL password
}
//Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";
try{
$mail->Send();
echo "Success!";
} catch(Exception $e){
//Something went bad
echo "Fail :(";
}
?>
You can try below as well.
You can send mail from localhost with sendmail package , sendmail package is inbuild in XAMPP. So if you are using XAMPP then you can easily send mail from localhost.
for example you can configure
C:\xampp\php\php.iniandc:\xampp\sendmail\sendmail.ini for gmail to send mail.
in C:\xampp\php\php.ini find extension=php_openssl.dll and remove the semicolon from the beginning of that line to make SSL working for gmail for localhost.
in php.ini file find [mail function] and change
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = test#gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
Now Open C:\xampp\sendmail\sendmail.ini. Replace all the existing code in sendmail.ini with following code
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=test#gmail.com
auth_password=my-gmail-password
force_sender=test#gmail.com
//mail function
$mail=test#test.com
mail($mail, 'Subject', 'sample mail', 'From: test#axxx.ba');
You should use PHPMailer instead:
download it from here
copy the PHPMailerAutoload.php from the downloaded Zip folder & paste into your directory where you've your contact us page
Then paste the following code in your contact page script:
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user#example.com'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('from#example.com', 'Mailer');
$mail->addAddress('joe#example.net', 'Joe User'); // Add a recipient
$mail->addAddress('ellen#example.com'); // Name is optional
$mail->addReplyTo('info#example.com', 'Information');
$mail->addCC('cc#example.com');
$mail->addBCC('bcc#example.com');
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
Don't forget to change the dummy values
For those who are using Windows and XAMPP, you have to replace the backslash \ with / on your php.ini file. A sample value could be
sendmail_path=C:/xampp/sendmail/sendmail.exe -t -i
https://dzone.com/articles/how-send-emails-php-windows
I am having an issue getting my sendmail to work in Xammp.
The mail was working perfectly when using sendtodisk but now I get a crash log using sendmail:
PHP to send emails (Using PHP Mailer):
$mail = new PHPMailer;
$mail->setFrom($from_email, 'Thomas ****');
$mail->addAddress('thomas#****.co.za', 'Client');
$mail->Subject = 'Sign Offs';
$mail->Body = generateMailTemplate($job_id, $to_email, $from_email, $name);
$mail->addAttachment('tmp/'.$job_id.'.pdf');
$mail->isHTML(true);
if (!$mail->send()) {
return $mail->ErrorInfo;
} else {
return true;
}
php.ini
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
sendmail.ini
smtp_server=outbound.mailhop.org
smtp_port=25
crash.log
command line : C:\xampp\sendmail\sendmail.exe -t -fthomas#****.co.za
Any ideas?
try to set smtp settings for your phpmailer script, not for php
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'outbound.mailhop.org';
$mail->Port = 25;
// if need auth
$mail->SMTPAuth = true;
$mail->Username = 'user';
$mail->Password = 'password';
$mail->Subject = 'subject';
$mail->Body = 'body';
$mail->send();
I m tryinng to send mail using following script. This scrips works fine if I execute this script in browser But if I run this script through command-line(cmd ) than getting smrp connection failed() error.
code :
function sendMail($subject,$cc,$bcc,$emailcontent){
global $_mailmsg;
$emailcontent=$_mailmsg;
$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup server
$mail->Port = '465';
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'username#gmail.com'; // SMTP username
$mail->Password = 'XXXXXXXX';
$mail->SMTPSecure = 'ssl';
$mail->From = 'username#gmail.com';
$mail->FromName = 'Notification';
$mail->addAddress('abc#gmail.com'); // Add a recipient
$mail->addReplyTo('username#gmail.com');
if(!empty($cc)){ $mail->addCC($cc); }
if(!empty($bcc)){ $mail->addBCC($bcc);}
$mail->WordWrap = 50; // Set word wrap to 50 characters
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = $subject;
$mail->Body = $emailcontent;
try
{
if($mail->send()) {
return 1;
exit;
}
else
{
echo 'Mailer Error: ' . $mail->ErrorInfo;
return 0;
}
}
catch(Exception $e)
{
return 0;
}
}
I also config php.ini file
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.gmail.com
; http://php.net/smtp-port
smtp_port = 465
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = username#gmail.com
To run php file i wrote the following things in cmd
php filename.php
Im trying to test my emails functions in localhost with phpmailer class.
But I´m getting this error: SMTP Error: Could not authenticate..
And this error its because I dont have a localhost email configured.
I already did this configuration in my Xampp php.ini to try test emails on localhost:
[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
; SMTP = localhost
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = myemail#hotmail.com
But its not working, Somebody there knows How to do this work on windows 8 with xampp?
<?php
define('MAILUSER','myemail#hotmail.com');
define('MAILPASS','');
define('MAILPORT','587');
define('MAILHOST','smtp.live.com');
define('SITENAME', 'Site Name');
function sendMail($subject,$message,$sender,$senderName,$destination,$destinationName, $reply = NULL, $replyNome = NULL){
require_once('mail/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->IsHTML(true);
$mail->Host = MAILHOST;
$mail->Port = MAILPORT;
$mail->Username = MAILUSER;
$mail->Password = MAILPASS;
$mail->From = utf8_decode($sender);
$mail->FromName = utf8_decode($senderName);
if($reply != NULL){
$mail->AddReplyTo(utf8_decode($reply),utf8_decode($replyNome));
}
$mail->Subject = utf8_decode($assunto);
$mail->Body = utf8_decode($mensagem);
$mail->AddAddress(utf8_decode($destino),utf8_decode($destinationName));
if($mail->Send()){
return true;
}else{
return false;
}
}
?>
Here I send the email:
$msg = 'hello';
sendMail('Sent email!',$msg,MAILUSER,SITENAME,$assoc['email'],$assoc['name']);
Maybe your SMTP configuration needs to be updated? See this article about the Hotmail SMTP settings:
http://www.serversmtp.com/en/smtp-hotmail