Я использую phpmailer для отправки электронной почты и у меня возникли проблемы с отправкой на хостинге, когда мне нужно подключиться к удаленному почтовому серверу.Я получил информацию от технической поддержки, что мне нужно связать IP-адрес моего сервера с удаленным сервером.Это первый раз, когда я возиться с сокетами.
К сожалению, phpmailer использует fsocketopen, поэтому я изменил его:
//my replacement code
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$conn = socket_connect($socket, $host, $port);
if($conn) {
$this->smtp_conn = $socket;
} else {
throw new Exception("Failed to connect to server: ".socket_last_error($socket));
}
//original phpmailer code
/**
$this->smtp_conn = @fsockopen($host, // the host of the server
$port, // the port to use
$errno, // error number if any
$errstr, // error message if any
$tval); // give up after ? secs
*/
Но после этого изменения я получаю предупреждения:
Как создать ресурс, который будет совместим с ресурсом, возвращенным из fsockopen?Используя var_dump, он говорит, что эти две переменные являются сокетами.Но я все еще получаю предупреждения для ресурса, созданного usign socket_create.