저자는 자발적으로 페피 포스트 쓰기 기여 프로그램의 일부로이 튜토리얼을 기여했다.
소개
기본 기능 메일()와 함께 제공 됩니다. 이 자습서에서는
필수 구성 요소
- 외부 세계에 전자 우편을 보내기를 위해 너의
체제가 형성하지 않으면 만일에 대비하여,그때 이 기사의 끝에 언급되는 단계를 참견하십시요.
구문
메일(받는 사람,제목,메시지,머리글,매개 변수);
매개 변수
~
문자열|필수
받는 사람의 이메일 주소입니다.
참고:준수해야 합니다. 쉼표로 구분하여 하나의 이메일 주소 또는 여러 개의 이메일 주소를 전달할 수 있습니다.
값이 어떻게 보일지에 대한 몇 가지 샘플 예제:
- ,
- 수신기 이름<>
- 수신기 이름<>,수신기 이름 2 <>
제목
문자열/필수
보낼 이메일의 제목 줄입니다.
참고:피험자는 2047 을 준수해야 합니다.
메시지
문자열|필수
보낼 메일의 내용입니다. 각 줄은 70 자를 넘지 않아야 합니다.
윈도우즈 머신의 경우,센드메일에 접속할 때,줄의 시작 부분에 있는 전체 정지를 제거한다. 이 문제를 해결하려면 아래 코드를 사용하여 점을 이중 점으로 바꿉니다:
<?php $text = str_replace("\n.", "\n..", $text); ?>
추가 _헤더
혼합(문자열 또는 배열)|선택적
이 매개 변수는 보낸 사람,참조 및 숨은 참조와 같은 추가 이메일 헤더를 전달하는 데 사용됩니다. 각 추가 헤더는 다음과 같이 구분해야 합니다.
참고:이메일을 보내는 동안 보낸 사람 헤더가 있는지 확인하십시오. 또는 기본값을 설정할 수도 있습니다.이니
추가 매개 변수
문자열|옵션
이 추가 매개 변수를 사용하여 센드 메일 프로그램에 대한 추가 플래그를 센드 메일_경로 구성 설정에서 구성한 대로 전달할 수 있습니다. 예를 들어,이 매개 변수를 사용하여-에프 옵션을 사용할 때 봉투 보낸 사람 주소를 설정할 수 있습니다. 이 매개 변수의 값을 내부적으로 이스케이프하여 잠재적 인 명령 실행을 방지합니다.
반환 값
메일()함수 반환
참되다고 해서 반드시 이메일이 수신자의 서버로 배달된다는 의미는 아닙니다. 메일이 성공적으로 전송되었음을 나타냅니다.
메일이 성공적으로 배달 허용 된 경우 참 반환,그렇지 않으면 거짓.
메일이 배달되도록 허용되었다고해서 메일이 의도 한 대상에 도달한다는 의미는 아닙니다.
참고:메일()기능은 로컬 서버에서 작동하지 않습니다. 메일을 보내려면 인터넷에 연결된 서버와 열린 포트가 필요합니다.
몇 가지 사용 사례 및 작업 예제
1. 메일을 보내는 방법
<?php$to = ", ";$subject = "This is a test HTML email";$message = "<html><head><title>This is a test HTML email</title></head><body><p>Test email. Please ignore.</p></body></html>";// It is mandatory to set the content-type when sending HTML email$headers = "MIME-Version: 1.0" . "\r\n";$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";// More headers. From is required, rest other headers are optional$headers .= 'From: <>' . "\r\n";$headers .= 'Cc: ' . "\r\n";mail($to,$subject,$message,$headers);?>
2. 추가 명령 줄 매개 변수를 사용하여 메일을 보내는 방법.
위에서 설명한 대로 이 사용 사례의 경우 추가 매개 변수를 사용하여 메일 보내기_경로를 사용하여 메일을 보낼 때 사용하도록 구성된 프로그램에 추가 매개 변수를 전달해야 합니다.
<?phpmail('', 'This is a test subject line', 'The complete body of the message', null, ''); ?>
일반적인 오류/예외
- 메일()기능을 사용하여 많은 양의 이메일을 보낼 수 없음
메일()기능을 사용하여 많은 양의 이메일을 보내는 것은 권장되지 않습니다. 이것은 정말로 매우 효율적이지 않습니다.
많은 양의 이메일을 보내려면,배::메일 및 배::메일_큐 패키지를 참조하거나 이메일 볼륨을 확장 할 수있는 좋은 이메일 서비스 제공 업체를 사용하는 것이 좋습니다. - 을 받지 않는 이메일 전송을 통해 PHP mail()함수는
될 수 있습니다 N 의 실패의 이유,하지만 하나 wried 문제는 많은 만남으로 유닉스 메일 전송 에이전트는 교체 LF 여 CRLF 자동으로,지도하는 배 CR 경우 CRLF 이미에서 사용하는 코드입니다. 이러한 경우,리프를 사용하여 시도(\엔)만. 메시지 형식에 대해 자세히 알아보기 이 문제를 해결하려면 다음 단계를 따르십시오.또는 사용자 정의”보낸 사람:”헤더가 없습니다.
이 오류는 주로 메일을 보내는 동안 추가 헤더 매개 변수를 사용하여 보낸 사람 헤더에 대해 언급하지 않았기 때문에 발생합니다.
이니’파일. 그래서 우리는 편집 할 것입니다.센드 메일을 구성하기 위해 이니 파일.
당신은 쉽게 찾거나 검색 할 수 있습니다.아래 명령을 사용하여 리눅스에서 파일:
locate php.ini
기본 위치는’/기타/
에서 찾을 수 있습니다.
:
설명:
- 2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일,2018 년 12 월 1 일)
변경.이니 파일은 메일 구성을 추가 할 수 있습니다.
1. 귀하의 웹 사이트를 엽니 다.아래 사용:
리눅스/맥 운영 체제:
vim /etc/php.in
윈도우:
메모장 사용
2. 파일에서 검색합니다. 그것은 아래와 같이 일 것입니다:
; For Win32 only.; http://php.net/smtpSMTP = localhost; http://php.net/smtp-portsmtp_port = 25; For Win32 only.; http://php.net/sendmail-from;sendmail_from = ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").; http://php.net/sendmail-pathsendmail_path = /usr/sbin/sendmail -t -i; Force the addition of the specified parameters to be passed as extra parameters; to the sendmail binary. These parameters will always replace the value of; the 5th parameter to mail(), even in safe mode.;mail.force_extra_parameters =; Add X-PHP-Originating-Script: that will include uid of the script followed by the filenamemail.add_x_header = On; The path to a log file that will log all mail() calls. Log entries include; the full path of the script, line number, To address and headers.;mail.log =
3. 파일에 메일 서버 세부 정보를 추가하거나 당신이 그것을 변경할 수 있습니다 하나를 넣다(메일 서버는 자신의 즉 될 수 있습니다. 로컬 메일 서버 또는 당신은 메일 서버로 어떤 특정을 사용할 수 있습니다).(세미콜론은 줄을 표시하는 데 사용됩니다 주석).당신이 어떤 사용자 정의 경로를 사용하는 경우 변경할 수 있습니다.당신이 당신의 자신의 로컬 서버를 사용하는 경우 변경이 필요하지 않습니다.
-또는 당신은 또한 페피 포스트,센드 그리드,메일 건,스파크 포스트와 같은 모든 이메일 서비스 제공 업체의 서버를 사용할 수 있습니다.
4. 저장/닫기.2603>
5. 마지막 단계는 웹 서버를 다시 시작하는 것을 잊지 마십시오.
프로 팁:간단한”정보를 호스팅 할 수 있습니다.아래 2 라이너 코드를 사용하여 각각의 모든 구성을 확인할 수 있습니다:
vim php_info.php<?phpphpinfo();?>
파일을 저장하고 종료하십시오.
6. 웹 서버를 다시로드하십시오.
7. 웹 브라우저에서http://localhost/php_info.php을 누르십시오.