Before this I am sorry for my bad English
The problem is that this code
$headers = "From: $from\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "Reply-To: $replyTo\r\n";
$headers .= "Return-Path: $from\r\n";
$message = wordwrap($message, 68);
if(mail($to, $subject, $message, $headers))
return true;
else
return false;
Send mail, for example, when $message = 'asasasasasasas'
and doesn't send when it's more long!
I'm working on my VPS and there are many other project where it works greatly, even if the $message is big.
What am I doing wrong?
PS: mail() return true
PS2: /var/log/maillog says OK:
mail() on [/var/www/.../Controller.php:213]: To: vla*****ss#gmail.com -- Headers: From: info#mydomain.ru Content-Transfer-Encoding: base64 Reply-To: info#mydomain.ru Return-Path: info#mydomain.ru
UPD New testing shows that if i delete adresses like ttt.domain.ru in message mail() sended greatly... i can't understand..
Related
It has been 2 days now trying to find a solution for this problem.
Recently my local ISP changed their security settings and now emails generate from PHP scripts is being rejected due header "Received: (from apache#localhost)".
Searching various articles and forums I have come to know that webserver/computer cannot find its own name (so it comes out
as "localhost") when mails are being sent. I have every solution mentioned on the forums but still could not change the "localhost" part to my server name.
hostname at /etc/hosts is ok.
have added MASQUERADE_AS... to /etc/mail/sendmail.mc...
/etc/sysconfig/network is ok.
I desparately need help and wonder if someone can help me solve this problem.
function MAIL_NVLP($fromname, $fromaddress, $toname, $toaddress, $subject, $message)
{
// Copyright ? 2005 ECRIA LLC, http://www.ECRIA.com
// Please use or modify for any purpose but leave this notice unchanged.
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "X-Priority: 3\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: php\n";
$headers .= "From: \"".$fromname."\" <".$fromaddress.">\n";
return mail($toaddress, $subject, $message, $headers);
}
$message = "This is a test from the support dept";
$fromname = "myname";
$fromaddress = "myname#domain.com";
$toname = "myname";
$toaddress = "myname#domain.com";
$subject = "testing new script one";
MAIL_NVLP($fromname, $fromaddress, $toname, $toaddress, $subject, $message);
echo $subject;
For some reason when I send an email message, the HTML is still being displayed in plain text. Can someone please tell me what I'm doing wrong here?
Here is the code:
$to = $_SESSION['customer_email'];
$from = "noreplay#mysite.com";
$subject = "Confirmation for Appointment on ".$_SESSION['display_date'];
$headers = "From: ".$from."\r\n";
$headers .= "Content-type: text/html; charseet=UTF-8;\r\n";
$headers .= "MIME-Version: 1.0;\r\n";
$message = "<p>Thank you".$_SESSION['firstname']." for booking online. Your appointment has been confirmed and is scheduled for <strong>".$_SESSION['display_date']."</strong> between the hours of <strong>".$_SESSION['display_time']."</strong>.</p><p> Please expect our crew to arrive between your two hour arrival window. You will receive a courtesy call when our crew is <span>15-30 minutes</span> away. A confirmation email has been sent to <strong>".$_SESSION['customer_email']."</strong>. </p><p> If you have any questions or need to make any changes to your appointment, please contact our office at <strong>1-800-333-1111</strong>. Thank you for choosing Us!
</p>";
if(mail($to, $subject, $message, $header ))
{
$msg = "Your message has been sent";
}
$headers .= "Content-type: text/html; charseet=UTF-8;\r\n";
should be
$headers .= "Content-type: text/html; charset=UTF-8;\r\n";
Two typos:
if(mail($to, $subject, $message, $header ))
should be
if(mail($to, $subject, $message, $headers ))
and in
$headers .= "Content-type: text/html; charseet=UTF-8;\r\n";
change your 'charseet' to
Content-Type: text/html; charset=ISO-8859-1\r\n
It appears nowadays you can use UTF-8
Content-Type: text/html; charset=UTF-8\r\n
and
if(mail($to, $subject, $message, $header))
to
if(mail($to, $subject, $message, $headers))
also mail's RETURN:
Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
It is important to note that just because the mail was accepted for delivery, it
does NOT mean the mail will actually reach the intended destination.
Using the php mail() function to send out emails when a user requests a login.
It was working fine last week, emails were being received by all my coworkers who share the same mail server for our company. Now however, the emails are not being received by that mail server, but received on others (comcast.net, uservoice.com, gmail.com, etc.) just fine.
No error from the php mail() function so the emails are being sent, just for whatever reason they are all of a sudden blocked by our mail server.
No settings have been changed to the php scripts or the mail server.
Any ideas??? I have tried everything!
<?PHP
$timestamp = date('Y-m-d H:i:s');
$to = 'james.hickman#MYCOMPANY.com';
$from = 'support#MYCOMPANY.uservoice.com';
$subject = 'Admin Test';
$message = 'Just a simple test message! - '.$timestamp;
$headers .= "Reply-To: ".$from."\r\n";
$headers .= "Return-Path: ".$from."\r\n";
$headers .= "From: ".$from."\r\n";
$headers .= "Organization: MYCOMPANY Support\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-Mailer: PHP". phpversion() ."\r\n" ;
if(mail($to, $subject, $message, $headers, "-f ".$from))
echo "Success!";
else
echo "Failed";
?>
If you are able to send mail out to other services and just not your own server then the problem is not with php's mail function. Php's mail function just sends out mail and you yourself said that u are able to send mails to other hosts. So the problem is not as devious as it sounds. Try and check if your server is out of disk-space.
I have this logic
$subject = "something.com Signup -
Please do not reply to this email. It was automatically generated.";
$body = "A new person has signed up to receive something updates:";
$headers = "From: webinquiries#something.com\n";
$headers .= "Reply-To: something#gmail.com\n";
// $headers .= 'Bcc: something#something.com' . "\r\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/plain; charset=ISO-8859-1\n";
mail($email, $subject, $body, $headers);
which seems ok but one thing.... can i set the smtp info like this
server="smtp.something.net",
username="webinquiries#somthing.com",
password="asda.1sda",
port="587"
you can set the server in php.ini, but user\password as php's build in mail does not support authentication. you should look at a third party library (phpmailer) as the php mail() function's very under powered.
I tried to send an email vie PHP but got nothing. I don't see what I am doing wrong.
// Send an email.
$subject = 'Welcome to mypage';
$message = 'your registration went fine.';
echo $email;
$a=mail($email, $subject, $message );
echo 'Mail sent, a='.$a;
I checked that $email contains my email address and $a = 1 after running the code. Still my mailbox is empty. Why?
You probably don't have Apache configured correctly. That's why the email isn't sending.
Some mail servers require mail headers:
$header = "MIME-Version 1.0\r\n";
$header .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$header .= "From: ".$sendername." <".$fromemail.">\r\n";
$header .= "X-Mailer: PHP/".phpversion();
mail($email, $subject, $message, $header);