Php code for sending mail via PHPSMTP
$ Bfconfig = Array ('sitename' => 'website name',); $ mail = Array ('state' => 1, 'server' => 'smtp .abc.com ', 'port' => 25, 'auth' => 1, 'username' => 'admin @ abc.com ', 'password' => '123 ', 'charset' => 'gbk', 'mailfrom' => 'admin @ abc.com '); function sendmail ($ mail_to, $ mail_subject, $ mail_message) {global $ mail, $ bfconfig; date_default_timezone_set ('prc'); $ mail_subject = '=? '. $ Mail ['charset'].'? B? '. Base64_encode ($ mail_subject ).'? = '; $ Mail_message = chunk_split (base64_encode (preg_replace ("/(^ | (\ r \ n ))(\.) /"," \ 1. \ 3 ", $ mail_message); $ headers. = ""; $ headers. = "MIME-Version: 1.0 \ r \ n"; $ headers. = "Content-type: text/html \ r \ n"; $ headers. = "Content-Transfer-Encoding: base64 \ r \ n"; $ headers. = "From :". $ bfconfig ['sitename']. "<". $ mail ['mailfrom']. "> \ r \ n"; $ headers. = "Date :". date ("r "). "\ r \ n"; list ($ msec, $ sec) = explode ("", microtime (); $ Headers. = "Message-ID: <". date ("YmdHis", $ sec ). ". ". ($ msec * 1000000 ). ". ". $ mail ['mailfrom']. "> \ r \ n"; if (! $ Fp = fsockopen ($ mail ['server'], $ mail ['port'], $ errno, $ errstr, 30 )) {exit ("CONNECT-Unable to connect to the SMTP server");} stream_set_blocking ($ fp, true); $ lastmessage = fgets ($ fp, 512 ); if (substr ($ lastmessage, 0, 3 )! = '000000') {exit ("CONNECT-". $ lastmessage);} fputs ($ fp, ($ mail ['auth']? 'Ehlo': 'helo '). "befen \ r \ n"); $ lastmessage = fgets ($ fp, 512); if (substr ($ lastmessage, 0, 3 )! = 220 & substr ($ lastmessage, 0, 3 )! = 250) {exit ("HELO/EHLO-". $ lastmessage);} while (1) {if (substr ($ lastmessage, 3, 1 )! = '-' | Empty ($ lastmessage) {break;} $ lastmessage = fgets ($ fp, 512);} if ($ mail ['auth ']) {fputs ($ fp, "auth login \ r \ n"); $ lastmessage = fgets ($ fp, 512); if (substr ($ lastmessage, 0, 3 )! = 334) {exit ($ lastmessage);} fputs ($ fp, base64_encode ($ mail ['username']). & quot; \ r \ n & quot;); $ lastmessage = fgets ($ fp, 512); if (substr ($ lastmessage, 0, 3 )! = 334) {exit ("auth login -". $ lastmessage);} fputs ($ fp, base64_encode ($ mail ['password']). & quot; \ r \ n & quot;); $ lastmessage = fgets ($ fp, 512); if (substr ($ lastmessage, 0, 3 )! = 235) {exit ("auth login -". $ lastmessage) ;}$ email_from = $ mail ['mailfrom'];} fputs ($ fp, "mail from: <". preg_replace ("/. * \ <(. + ?) \>. */"," \ 1 ", $ email_from ). "> \ r \ n"); $ lastmessage = fgets ($ fp, 512); if (substr ($ lastmessage, 0, 3 )! = 250) {fputs ($ fp, "mail from: <". preg_replace ("/. * \ <(. + ?) \>. */"," \ 1 ", $ email_from ). "> \ r \ n"); $ lastmessage = fgets ($ fp, 512); if (substr ($ lastmessage, 0, 3 )! = 250) {exit ("mail from -". $ lastmessage) ;}} foreach (explode (',', $ mail_to) as $ touser) {$ touser = trim ($ touser); if ($ touser) {fputs ($ fp, "rcpt to: <". preg_replace ("/. * \ <(. + ?) \>. */"," \ 1 ", $ touser ). "> \ r \ n"); $ lastmessage = fgets ($ fp, 512); if (substr ($ lastmessage, 0, 3 )! = 250) {fputs ($ fp, "rcpt to: <". preg_replace ("/. * \ <(. + ?) \>. */"," \ 1 ", $ touser ). "& gt; \ r \ n"); $ lastmessage = fgets ($ fp, 512); exit ("rcpt -". $ lastmessage) ;}} fputs ($ fp, "DATA \ r \ n"); $ lastmessage = fgets ($ fp, 512); if (substr ($ lastmessage, 0, 3 )! = 354) {exit ("DATA -". $ lastmessage);} fputs ($ fp, $ headers); fputs ($ fp, ":". $ mail_to. "\ r \ n"); fputs ($ fp, "Subject: $ mail_subject \ r \ n"); fputs ($ fp, "\ r \ n"); fputs ($ fp, "$ mail_message \ r \ n. \ r \ n "); $ lastmessage = fgets ($ fp, 512); if (substr ($ lastmessage, 0, 3 )! = 250) {exit ("END-". $ lastmessage);} fputs ($ fp, "QUIT \ r \ n ");}