<?php
$address = 'smtp.mail.ru';
$port = 25;
$login = 'mail';
$pwd = 'pass';
$from = '[email protected]';
$to = '[email protected]';
$subject = c("edit1")->text;
$message = c("memo1")->text;
try{
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
throw new Exception('socket_create() failed: '.socket_strerror(socket_last_error())."\n");
}
$result = socket_connect($socket, $address, $port);
if ($result === false) {
throw new Exception('socket_connect() failed: '.socket_strerror(socket_last_error())."\n");
}
read_smtp_answer($socket);
write_smtp_response($socket, 'EHLO '.$login);
read_smtp_answer($socket);
write_smtp_response($socket, 'AUTH LOGIN');
read_smtp_answer($socket);
write_smtp_response($socket, base64_encode($login));
read_smtp_answer($socket);
write_smtp_response($socket, base64_encode($pwd));
read_smtp_answer($socket);
write_smtp_response($socket, 'MAIL FROM:<'.$from.'>');
read_smtp_answer($socket);
write_smtp_response($socket, 'RCPT TO:<'.$to.'>');
read_smtp_answer($socket);
write_smtp_response($socket, 'DATA');
read_smtp_answer($socket);
$message = "To: $to\r\n".$message;
$message = "Subject: $subject\r\n".$message;
write_smtp_response($socket, $message."\r\n.");
read_smtp_answer($socket);
write_smtp_response($socket, 'QUIT');
read_smtp_answer($socket);
}catch(Exception $e){
echo "\nError: ".$e->getMessage();
}
/**
if (isset($socket)) {
socket_close($socket);
}
**/
function read_smtp_answer($socket){
$read = socket_read($socket, 1024);
if ($read{0} != '2' && $read{0} != '3'){
if (!empty($read)){
throw new Exception('SMTP failed: '.$read."\n");
}else{
throw new Exception('Unknown error'."\n");
}
}
}
function write_smtp_response($socket, $msg){
$msg = $msg."\r\n";
socket_write($socket, $msg, strlen($msg));
}
Created
May 19, 2019 22:46
-
-
Save gostrafx/75cd03006b25bfaa6a41c486e0250af2 to your computer and use it in GitHub Desktop.
smtp php
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment