jebbie635
asked on
SMTP Headers for PHP Mailer
Hi experts,
I need full smtp headers for a php mailer. This is what i have and its not working.
Thanks,
I need full smtp headers for a php mailer. This is what i have and its not working.
$connect = fsockopen($hostname,$port);
fputs($connect, "EHLO $mydomain\r\n");
fputs($connect, "AUTH LOGIN\r\n");
fputs($connect, base64_encode($username)."\r\n");
fputs($connect, base64_encode($password)."\r\n");
fputs($connect, "FROM:$fromname <$fromemail>\r\nReply-To: $replyto\r\n");
fputs($connect, "RCPT TO:$fullname <$email>\r\n");
fputs($connect, "DATA\r\n");
fputs($connect, "MIME-Version: 1.0\r\n");
fputs($connect, "Content-Type: text/html\r\n");
fputs($connect, "Content-Transfer-Encoding: base64\r\n\r\n");
fputs($connect, "To: $email\n");
fputs($connect, "Subject: $subject\n\n");
fputs($connect, "$message\r\n");
fputs($connect, ".\r\n");
fputs($connect, "QUIT\r\n");
Thanks,
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Have you considered using the free and open-source PHPMailer class? It might be easier. Just a thought...
https://code.google.com/a/apache-extras.org/p/phpmailer/
And if you find that you're still wrestling with email anomalies and edge cases (as most of us do) you might want to consider a professionally hosted service. This one has worked well for me.
http://search.constantcontact.com/index.jsp
https://code.google.com/a/apache-extras.org/p/phpmailer/
And if you find that you're still wrestling with email anomalies and edge cases (as most of us do) you might want to consider a professionally hosted service. This one has worked well for me.
http://search.constantcontact.com/index.jsp
ASKER
Is 'TO' required ? Isnt the same with 'RCPT-TO' ?
There are two parts to sending an e-mail: the SMTP protocol in which RCPT TO is required and the e-mail itself in which the To: header is sent. The e-mail itself is sent in the SMTP DATA command. Everything here constitutes what the the e-mail client sees:
... and also what the SMTP server essentially ignores. :)
fputs($connect, "MIME-Version: 1.0\r\n");
fputs($connect, "Content-Type: text/html\r\n");
fputs($connect, "Content-Transfer-Encoding: base64\r\n");
fputs($connect, "To: $email\r\n");
fputs($connect, "From: "$fromname" <$fromemail>\r\nReply-To: $replyto\r\n");
fputs($connect, "Subject: $subject\r\n\r\n");
fputs($connect, "$message\r\n");
fputs($connect, ".\r\n");
... and also what the SMTP server essentially ignores. :)
ASKER
Omg this is so much reading and cant understand it. Please correct the code, this shouldnt be much for you. I really need it. This is the mailer here:
<?php
error_reporting(E_ALL);
// MESSAGE DETAILS
$fromemail = "";
$fromname = "";
$replyto = "";
$subject = "";
$fullname = "";
$email = "";
$message = "";
// SMTP INFO
$hostname = "";
$username = "";
$password = "";
$port = 25;
$mydomain = "";
// SMTP CONNECT
$connect = fsockopen($hostname,$port);
fputs($connect, "EHLO \'$mydomain\'\r\n");
fputs($connect, "AUTH LOGIN\r\n");
fputs($connect, base64_encode($username)."\r\n");
fputs($connect, base64_encode($password)."\r\n");
fputs($connect, "MAIL FROM: \'$fromname\' <$fromemail>\r\n");
fputs($connect, "RCPT TO: \'$fullname\' <$email>\r\n");
fputs($connect, "DATA\r\n");
fputs($connect, "MIME-Version: 1.0\r\n");
fputs($connect, "Content-Type: text/html\r\n");
fputs($connect, "Content-Transfer-Encoding: base64\r\n");
fputs($connect, "To: \'$email\'\r\n");
fputs($connect, "From: \'$fromname\' <$fromemail>\r\nReply-To: $replyto\r\n");
fputs($connect, "Subject: \'$subject\'\r\n\r\n");
fputs($connect, "\'$message\'\r\n");
fputs($connect, ".\r\n");
fputs($connect, "QUIT\r\n");
?>
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Its not sending. What is wrong?
ASKER
I tried telnet and the server is working with this headers, so this code sends data wrong. Anybody?
ASKER
Thanks.
This is working:
<?php
error_reporting(E_ALL);
// MESSAGE DETAILS
$email = "";
$fromemail = "";
$fromname = "";
$replyto = "";
$subject = "";
$message = "";
$mydomain = "";
// SMTP INFO
$hostname = "";
$username = "";
$password = "";
// SMTP CONNECT
$connect = fsockopen($hostname, 25);
fputs($connect, "EHLO $mydomain\r\n");
fputs($connect, "AUTH LOGIN\r\n");
fputs($connect, base64_encode($username)." \r\n");
fputs($connect, base64_encode($password)." \r\n");
fputs($connect, "MAIL FROM: $fromemail\r\n");
fputs($connect, "RCPT TO: $email\r\n");
fputs($connect, "DATA\r\n");
fputs($connect, "MIME-Version: 1.0\r\n");
fputs($connect, "Content-Type: text/html\r\n");
fputs($connect, "Content-Transfer-Encoding : 8bit\r\n");
fputs($connect, "To: \"$fullname\" <$email>\r\n");
fputs($connect, "From: \"$fromname\" <$fromemail>\r\n");
fputs($connect, "Reply-To: $replyto\r\n");
fputs($connect, "Subject: $subject\r\n\r\n");
fputs($connect, "$message\r\n");
fputs($connect, ".\r\n");
fputs($connect, "QUIT\r\n");
?>
This is working:
<?php
error_reporting(E_ALL);
// MESSAGE DETAILS
$email = "";
$fromemail = "";
$fromname = "";
$replyto = "";
$subject = "";
$message = "";
$mydomain = "";
// SMTP INFO
$hostname = "";
$username = "";
$password = "";
// SMTP CONNECT
$connect = fsockopen($hostname, 25);
fputs($connect, "EHLO $mydomain\r\n");
fputs($connect, "AUTH LOGIN\r\n");
fputs($connect, base64_encode($username)."
fputs($connect, base64_encode($password)."
fputs($connect, "MAIL FROM: $fromemail\r\n");
fputs($connect, "RCPT TO: $email\r\n");
fputs($connect, "DATA\r\n");
fputs($connect, "MIME-Version: 1.0\r\n");
fputs($connect, "Content-Type: text/html\r\n");
fputs($connect, "Content-Transfer-Encoding
fputs($connect, "To: \"$fullname\" <$email>\r\n");
fputs($connect, "From: \"$fromname\" <$fromemail>\r\n");
fputs($connect, "Reply-To: $replyto\r\n");
fputs($connect, "Subject: $subject\r\n\r\n");
fputs($connect, "$message\r\n");
fputs($connect, ".\r\n");
fputs($connect, "QUIT\r\n");
?>
Glad you got there in the end. :)
SMTP standard: http://tools.ietf.org/html/rfc2821
E-mail format: http://tools.ietf.org/html/rfc2822
Open in new window
(Corrected headers in e-mail.)