PHP mail with include template path - include

Trying to send a PHP email the easy way but I cannot work out why this one does not work. For some reason it sends 3 emails all with their entire content being '1' . That is all.
The PHP
else if (isset($_GET['quoteemail'])) {
$email = include(TEMPLATEPATH . '/bookings/booking-quote.php');
$to = $current_user->user_email;
$subject = "Your Order - Dive The Gap" ;
$message = $email;
$headers = "From: Dive The Gap Bookings <ask#divethegap.com>" . "\r\n" .
"Content-type: text/html" . "\r\n";
mail($to, $subject, $message, $headers);
}
Don't worry about the else if, their is an IF or 2 before this function.
Any ideas,
Marvellous

include, that includes a file and tells you "1" when it successfully includes the file.
You probably want to look into the function: file_get_contents();

Related

How to Send email with html templates in laravel 5?

i want to try simple email sent like in php but i get templates based email sending in Laravel 5 ??
`$to = Session::get('email');
$subject = 'Order confirmation';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: Test <rajdipvekriya1992#gmail.com>";
$message = 'test body';
mail($to, $subject, $message, $headers);`
but i want get templates based body html pass $message like to
$body = $this->load-
>view('admin/email_template/test_template',$data,TRUE);
$this->email->message($body);
$this->email->send();
Use Mail::send like this
\Mail::send('view', $data, function ($message)
{
$message->subject('Email Subject');
$message->from('acb#example.com');
$message->to('xyz#example.com');
});
and create view.blade.php, write in laravel blade.
create a Mailable class with make command
php artisan make:mail
then write your code in handle method
/**
* Build the message.
*
* #return $this
*/
public function build()
{
return $this->view('emails.complaint-reply')
->subject('Cotint Group')
->with(['complaint'=>$this->complaint]);
}
And in emails.complaint-reply.blade.php file write down your HTML template
I think Mail::raw is what you need:
Mail::raw('Text to e-mail', function($message)
{
$message->from('us#example.com', 'Laravel');
$message->to('foo#example.com')->cc('bar#example.com');
});
https://laravel.com/docs/5.0/mail
use Illuminate\Support\Facades\Mail;
Mail::send('email.relatorlead', ['data' => $message], function ($m) use ($message) {
$m->from('no-reply#twostructureshomes.com', 'Two Structures Homes');
$m->to('nikunj#whitelabeliq.com');
$m->subject('Realtor Registration Lead From ' . $message['firstname']);
});
have a look to this code, this will surely help you.
<?php
$to = "somebody#example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster#example.com" . "\r\n" .
"CC: somebodyelse#example.com";
mail($to,$subject,$txt,$headers);
?>

Add image and hyperlink in auto response email (after form submission)

I am new to php and building my first project.
I am creating a auto response email which will be sent to user after form submission.
The auto response email need to have content as follows,
Logo image
Thank you for contacting us.
Here you can view our case study.(need to link pdf file to view**)
I manage to get text. but not able to add image and hyperlink.
tried using variable to store image url but code is visible instead of an image.
i request if someone Please guide me.to solve this.
<?php
$to = $_POST['email'];
$from = "info#company.com";
$headers = "From: company";
$subject = "Thank you for contacting us.";
//$img='<img src="http://www.http://company.com/images/logo.jpg"/>';
$linkedin='Linkedin';
$twitter='Twitter';
$message=
"Dear ".$firstname." Thank you for contacting us.
Here you can view our case study.
www.company.com/data/casestudy.pdf
www.company.com | info#company.com | Linkedin | Twitter
";
$mailsent = mail($to, $subject, $message, $headers);
?>
First, In $header add content type to HTML
$headers .= "Content-type:text/html;charset=UTF-8";
http://php.net/manual/en/function.mail.php
This will set mail Content type to HTML, Now you can add all Tags and link of HTML without using variables, So full code will be like this
<?php
$to = $_POST['email'];
$from = "info#company.com";
$headers = "From: company";
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$subject = "Thank you for contacting us.";
$message="<img src='http://company.com/images/logo.jpg'/>
<br/>Dear ".$firstname." Thank you for contacting us.
Here you can view our case study.
<a href='www.example.com'>File Name </a>
www.company.com | info#company.com |<a href='www.linkedin.com'>Linkedin</a> |<a href='twitter.com'> Twitter</a>
";
$mailsent = mail($to, $subject, $message, $headers); ?>
And don't get confused in single-quotes and double-quotes used here also i assume your $firstname has some value.

How to get order details after an order placed using observer

I would like to get the order details using observer ,
Once i get the order it will sent order details to my test email , but i can not able to get the order details.
please check the code which i tried to get the order details, Can someone let me know how can i get the order details , thanks.
public function postdata($observer) {
$to = 'testmail#gmail.com';
$subject = 'Mail after Sale order place.';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$message = 'This is my first Magento Observer After Sale order place';
mail($to, $subject, $message, $headers);
$order = $observer->getEvent()->getOrder();
$order_message = $order;
foreach($order as $ok => $ov) {
$order_message .= $ok. " => " .$ov;
}
mail($to, $subject, $message, $headers);
}
}
You can configure Magento to send you a copy of the order confirmation email that gets sent to the customer. If that is sufficient for your needs, this previously answered question will do the trick.
Use sale_order_save_after event to get the order details after place the order.

PHPmailer - After Form submitted the Inbox message displays HTML numeric code

The problem is with this PHP code that goes through an AJAX function and sends the content of a Form to a specific e-mail.
The essential part of the script is working, but some text appears to be converted in the Inbox when the e-mail arrives. Specifically, single-quotes (') are replaced with double-quotes (").
After searching the web and browsing SO, I couldn't find an answer. Any help would be deeply appreciated.
The code follows.
<?php
require '../config/squareconfig.php';
if($_POST)
{
//check if ajax request, exit if not
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
die();
}
//check $_POST vars are set, exit if any missingc
if(!isset($_POST["usercName"]) || !isset($_POST["usercEmail"]) || !isset($_POST["usercMessage"]))
{
die();
}
//Sanitize input data using PHP filter_var().
$user_cName = filter_var($_POST["usercName"], FILTER_SANITIZE_STRING);
$user_cEmail = filter_var($_POST["usercEmail"], FILTER_SANITIZE_EMAIL);
$user_cMessage = filter_var($_POST["usercMessage"], FILTER_SANITIZE_STRING);
if(strlen($user_cName)<4) // If length is less than 4 it will throw an HTTP error.
{
header('HTTP/1.1 500 Name is too short or empty!');
exit();
}
if(!filter_var($user_cEmail, FILTER_VALIDATE_EMAIL)) //email validation
{
header('HTTP/1.1 500 Please enter a valid email!');
exit();
}
if(strlen($user_cMessage)<5) //check emtpy message
{
header('HTTP/1.1 500 Too short message! Please enter something.');
exit();
}
//proceed with PHP email.
$headers = 'From: '.$user_cEmail.' ';
$templatemail = PHP_EOL . PHP_EOL . 'User E-mail:' . PHP_EOL . $user_cEmail;
#$sentMail = mail($squarecmail, $squarecsubject, $user_cMessage . PHP_EOL . $templatemail, $user_cName);
if(!$sentMail)
{
header('HTTP/1.1 500 Could not send mail! Sorry..');
exit();
}else{
echo $squarectymessage . '<br>' . '<div class="subagain">' . $squarecontagain . '</div>';
?>
<script type="text/javascript">
$('#contact_form').fadeOut();
</script>
<?php
}
}
I'm uncertain about the "problem", but a reasonable suggestion might be to send the e-mail as HTML, since filter_var() returns html-entities for non-alphanumeric characters. Specify the content type for the e-mail message.
$headers = "From: yomama#jokes.com\r\n";
$headers .= "Reply-To: arenot#always.funny\r\n";
$headers .= "CC: yomamasobig#whenshewearsayellowcoatppleyell.taxi\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$mail_sent = #mail($sender, $subject, $message, $headers);
The above suggestion is based on the fact that FILTER_SANITIZE_STRING causes html-unicode-encoding (or some such) on the mentioned characters.
$ php-shell
PHP-Shell - Version 0.3.1, with readline() support
(c) 2006, Jan Kneschke <jan#kneschke.de>
>> echo filter_var('\' -- "', FILTER_SANITIZE_STRING);
' -- "

Mail function not sending in HTML format

HUGE EDIT!!!!!!!!!
Ok, so it's not the HTML or whatever. When I paste it raw in the PHP message variable, it sends perfectly formatted. It's something with the textarea box paste part... that's making it not work properly. Is it the newline thing?.... Hmmmmm
Ok so this has been a frustrating day for me. I'm trying to send HTML emails where I can paste it in the message form textarea. Well I stripped it down to the barebones and it will NOT let anything above the body and after the body be put into HTML.
It prints this:
<html> <head> <title>HalfOffDeals - Thank you!</title> </head> <body>
Then it spits out the body... although unformatted with no style.
Then this afterwards:
</body> </html>
I tried putting the inline CSS how you're suppose to with the style tag and it just omits that completely. I'm using CodeIgniter and I don't know if it strips it automatically which it shouldn't.. I have a form that says (TO, SUBJECT, and MESSAGE). And in the message part, you paste your HTML email template and it's suppose to send to the to email.
And another question I had was how to add '' to the headers:
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
I'm just confused on why my email isn't accepting HTML. This is how I have it setup:
public function send_email() {
$to = $this->input->post('to');
$subject = $this->input->post('subject');
$message .= $this->input->post('message');
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
// Additional headers
$headers .= 'To: Customer <'.$to . "\r\n";
$headers .= 'From: noreply#intellectproductions.com <noreply#intellectproductions.com>' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
}
Any ideas?
HERE IS THE EMAIL TEMPLATE: http://pastebin.com/D04cLXe4
$headers .= 'To: Customer <'.$to . "\r\n";
change to
$headers .= 'To: Customer <'. $to .'>'."\r\n";
and try:
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
change to
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
your server is linux, newline is "\n" if windows "\r\n"
I see that you are indeed using CodeIgniter -- so, I recommend using CodeIgniter's Email class.
Try changing your function to this:
public function send_email() {
$to = $this->input->post('to');
$subject = $this->input->post('subject');
$message .= $this->input->post('message');
$this->load->library('email');
// To send HTML mail, set the appropriate mailtype
$this->email->set_mailtype('html');
// setup the message
$this->email->to($to);
$this->email->from('noreply#intellectproductions.com');
$this->email->subject('Put the subject here');
$this->email->message($message);
// Mail it
$this->email->send();
}
This will do the right thing to handle HTML emails even if they have attachments.
Save your code to what matters, you don't need to do all this work. ;)
To send html in email you can use default CI email settings;
$this->load->library('email');
$config = array(
'mailtype' => 'html',
'newline' => '\r\n',
'charset' => 'utf-8' //default charset
);
$this->email->initialize($config);
$this->email->from($sender);
$this->email->to($receiver);
$this->email->subject($subject);
$this->email->message($message);
$this->email->send();
For more details see CI email class.
Also try to use $this->email->print_debugger() to see email errors/
Back when I used the PHP mail function, I also ended up with some problems. Then I met the class phpmailer and my problems were over. Take a good look at it. It's worth it.

Resources