컴퓨터 지식 네트워크 - 컴퓨터 백과사전 - Php 를 통해 메일을 보내려면 어떻게 해야 합니까? Php 의 메일 함수를 사용할 수 없습니다!

Php 를 통해 메일을 보내려면 어떻게 해야 합니까? Php 의 메일 함수를 사용할 수 없습니다!

메일 지원 서버는 일반적으로 리눅스인 국내에는 많지 않은 것 같다.

자신의 컴퓨터 설치 메일 서버가 밖으로 보낼 수 없는 것 같다.

현재 많은 관리 시스템은 fsocketopen 방식으로 메일 서버에 접속하고 메일을 보내는 데 163 126 을 사용할 수 있는 메일함 인터넷에는 많은 관리 시스템 백그라운드가 사용자 이름과 비밀을 채우는 것과 같은 모델들이 있다 코드는 단체로 보낼 수 있습니다. 괜찮으시다면, 이전에 제가 고쳐주신 fsocketopen 방식을 이용해 대량 또는 단발 이메일을 이용할 수 있는 1 * * * 3 개의 파일

메일 클래스. PHP ""

< " -응? Php

클래스 SMTP

{

var $ host; //호스트

var $port; //포트는 일반적으로 25

var $user 입니다. //SMTP 인증 계정

var $pass; //인증 암호

var $debug = false; //및 서버 세션 정보를 표시하시겠습니까?

var $conn;

var $result_str; //결과

var $in; //클라이언트가 보낸 명령

var $from; //받는 사람이 메시지에 표시된 원본 사서함을 받았습니다.

var $email; //실제 주소

var $to; //대상 사서함

var $subject; //항목

var $body; //내용

var $error;

var $All;

function SMTP ($ array)

{

$ this-> Host = $array['host'];

$this-> Port = $array['port'];

$this-> Email= $array['trueemail'];

$this-> From = $array['from'];

$this-> User = base64 _ encode ($ array ['username']);

$this-> Pass = base64 _ encode ($ array ['password']);

$this-> Debug = $array['debug'];

$this-> Socket = socket _ create (af _ inet, sock _ stream, sol _ TCP);

if($this-> 소켓) {

$ this-> Result_str = "소켓 만들기:". socket _ strerror (socket _ last _ error ());

$this-> Debug_show($this-> Result_str);

}

else

die ("초기화에 실패했습니다. 네트워크 연결 및 매개 변수를 확인하십시오.");

$this-> Conn = socket_connect($this-> 소켓, $ this-> 호스트, $ this-> 포트);

if($this-> Conn){

$this-> Result_str = "소켓 연결 생성:". SOCKET _ strerror (socket _ last _ error ());

$this-> Debug_show($this-> Result_str);

}

else

die ("초기화에 실패했습니다. 네트워크 연결 및 매개 변수를 확인하십시오.");

$this-> Result_str = "서버 응답: < Font color=#cc> " . socket_read ($this-> 소켓, 124). "< /font> " 을 눌러 섹션을 인쇄할 수도 있습니다

$this-> Debug_show($this-> Result_str);

}

functiondebug _ show ($ str)

{

if ($ this-> 디버그)

{

echo $ str. "< P> \r\n ";

}

}

function setmail ($ to, $ subject, $ body) {

$ this-> To = $to;

$this-> Subject = $subject;

$this-> Body = $body;

$ all = "컨텐트 유형: 텍스트/html; Charset=gb2312\r\n "; //메시지를 인코딩하는 방법은 필요에 따라

$ all. = "from:" .. $ this-> 를 변경할 수 있습니다 시작. "\ r \ n";

$ all. = "to:" .. $ this-> To."\r\n ";

$ all. = "subject:" .. $ this-> Subject .. "\ r \ n \ r \ n";

$All .= $this-> 바비;

$this-> All = $All;

}

/**

* 메일 보내기 섹션

* 사서함 배열 수신

*/

function send ($ to array, $ subbs In = "EHLO HELO\r\n ";

$this-> Docommand ();

$this-> In = "AUTH LOGIN\r\n ";

$this-> Docommand ();

$this-> In = $this-> 사용자 .. "\ r \ n";

$this-> Docommand ();

$this-> In = $this-> 패스 .. "\ r \ n";

$this-> Docommand ();

foreach ($ to array as $ to) {

$ this-> Setmail($to,$subject,$body);

$this-> In = "RSET\r\n ";

$this-> Docommand ();

$this-> In = "MAIL FROM:< " . $this-> 이메일. "> \r\n ";

$this-> Docommand ();

$this-> In = "RCPT TO:< " . $this-> To."> \r\n ";

$this-> Docommand ();

$this-> In = "DATA\r\n ";

$this-> Docommand ();

$this-> In = $this-> All."\r\n.\r\n ";

$this-> Docommand ();

}

$this-> In = "QUIT\r\n ";

$this-> Docommand ();

// 종료, 연결 닫기

}

function do command ()

{

socket _ write ($ this-) 소켓, $ this-> In, strlen ($this-> In));

$this-> Debug _ show ("clientaction:" .. $ this-> In);

$this-> Result_str = "Server:<: < Font color=#cc> " . socket_read ($this-> 소켓, 124). "< /font> " 을 눌러 섹션을 인쇄할 수도 있습니다

$this-> Debug_show($this-> Result_str);

}

} >

mailconfig.inc.php "

< -응? Php

$ mailconfig ['host'] = "smtp.126.com"; //호스트

$mailconfig['port'] = "25 "; //포트는 일반적으로 25

$ mailconfig ['trueemail'] = "mhz16 @ 126.com" 입니다. //실제 주소

$ mailconfig ['username'] = "MHz 16"; //SMTP 인증 계정

$ mailconfig ['password'] = "* * * * *"; //자신의

$mailconfig['debug'] = false; //및 서버 세션 정보를 표시하시겠습니까?

$ mailconfig ['from'] = "테스트 @ 테스트.com"; //사용자에게 표시되는 보낸 사람

include_once "MailClass.php ";

set_time_limit(18); >

send demo.php "

< -응? Php

include _ once "mail config.inc.php";

// 간단한 임시 코드 검증 현재 시간 (시간) 의 검증 코드

//if (empty ($ _ get ['s']) | | $ _ get ['; = md5(date('Y-m-d-H', 시간 ()))) {header ("NetEader 163 의 송신 메일 서버는 smtp.163.com 의 모든 사서함에 대한 설명이 있습니다. 이 기능을 사용할 수 있는 것은 새로 등록된 사서함이 잘 작동하지 않는 것 같습니다. 왜냐하면 NetEader 는 26 년 1 에 사서함을 조정했기 때문입니다. 그 전에 등록한 것은 문제없습니다. 그 후에 등록한 것은 다른 기능을 개통하고 한동안 사용해야 하는 < P > 입니다. Mtp 서버에 대한 링크는 명령 프롬프트 라인에서 테스트할 수 있습니다.

먼저 telnet smtp.126.com 25

SMTP 가 사용하는 25 포트가 서비스를 제공하기 때문에

22126.com anti-spam 을 볼 수 있습니다 8]) 을 참조하십시오

EHLO HELO

서버는

25-mail

25-pipe lining

25-AUTH LOGIN

으로 돌아갑니다 M5hbWU6

그런 다음 base64 를 통해 암호화된 사용자 이름과 비밀번호를 입력하면 명령을 통해 서버와 대화할 수 있습니다. 메일 전송 등의 기능 < P > 구체적으로 더 많은 명령에 관심이 있다면 < P > 이 PHP 프로그램을 직접 확인하는 것이 이 기능을 시뮬레이션하는 것입니다. < P > 텔넷으로 직접 연결할 수 없다면 서버가 잘못된 것입니다. 。

上篇: 배경화면을 영어로 어떻게 말하나요? 下篇: 중국은행의 PS4 백업 방식이 차단될 가능성이 있나요?
관련 내용