Advertisement
Guest User

Send Mail using Socket

a guest
Mar 13th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. <?php
  2. //
  3. // This function was originally a part of phpBB2 (http://www.phpbb.com).
  4. //
  5. function smtp_mail($to, $subject, $message, $headers = '')
  6. {
  7. $recipients = explode(',', $to);
  8. $user = '<your mail id>';
  9. $pass = '<your password>';
  10. // The server details that worked for you in the above step
  11. $smtp_host = '<server>';
  12. //The port that worked for you in the above step
  13. $smtp_port = 465;
  14.  
  15. if (!($socket = fsockopen($smtp_host, $smtp_port, $errno, $errstr, 15)))
  16. {
  17. echo "Error connecting to '$smtp_host' ($errno) ($errstr)";
  18. }
  19.  
  20. server_parse($socket, '220');
  21.  
  22. fwrite($socket, 'EHLO '.$smtp_host."\r\n");
  23. server_parse($socket, '250');
  24.  
  25. fwrite($socket, 'AUTH LOGIN'."\r\n");
  26. server_parse($socket, '334');
  27.  
  28. fwrite($socket, base64_encode($user)."\r\n");
  29. server_parse($socket, '334');
  30.  
  31. fwrite($socket, base64_encode($pass)."\r\n");
  32. server_parse($socket, '235');
  33.  
  34. fwrite($socket, 'MAIL FROM: <'.$user.'>'."\r\n");
  35. server_parse($socket, '250');
  36.  
  37. foreach ($recipients as $email)
  38. {
  39. fwrite($socket, 'RCPT TO: <'.$email.'>'."\r\n");
  40. server_parse($socket, '250');
  41. }
  42.  
  43. fwrite($socket, 'DATA'."\r\n");
  44. server_parse($socket, '354');
  45.  
  46. fwrite($socket, 'Subject: '
  47. .$subject."\r\n".'To: <'.implode('>, <', $recipients).'>'
  48. ."\r\n".$headers."\r\n\r\n".$message."\r\n");
  49.  
  50. fwrite($socket, '.'."\r\n");
  51. server_parse($socket, '250');
  52.  
  53. fwrite($socket, 'QUIT'."\r\n");
  54. fclose($socket);
  55.  
  56. return true;
  57. }
  58.  
  59. //Functin to Processes Server Response Codes
  60. function server_parse($socket, $expected_response)
  61. {
  62. $server_response = '';
  63. while (substr($server_response, 3, 1) != ' ')
  64. {
  65. if (!($server_response = fgets($socket, 256)))
  66. {
  67. echo 'Error while fetching server response codes.', __FILE__, __LINE__;
  68. }
  69. }
  70.  
  71. if (!(substr($server_response, 0, 3) == $expected_response))
  72. {
  73. echo 'Unable to send e-mail."'.$server_response.'"', __FILE__, __LINE__;
  74. }
  75. }
  76. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement