php.ini & SMTP= - 사용자 이름과 비밀번호를 어떻게 전달합니까?

StackOverflow https://stackoverflow.com/questions/112190

  •  02-07-2019
  •  | 
  •  

문제

My ISP 계정을 사용하려면 아웃바운드를 위한 사용자 이름과 비밀번호를 보내야 합니다. SMTP 우편.

어떻게 내가 가질까 PHP 실행할 때 이것을 사용하려면 php.mail()? 그만큼 php.ini 파일에는 서버에 대한 항목만 포함되어 있습니다. (SMTP= ) 그리고 From: (sendmail_from= ).

도움이 되었습니까?

해결책

PHP mail() 명령은 인증을 지원하지 않습니다.귀하의 옵션:

  1. PHP메일러- 지도 시간
  2. - 지도 시간
  3. 사용자 정의 기능 - 메모 섹션에서 다양한 솔루션을 확인하세요. http://php.net/manual/en/ref.mail.php

다른 팁

php.ini 파일에 다음 세부 사항을 적용합니다.잘 작동해요.

SMTP = smtp.example.com
smtp_port = 25
username = info@example.com
password = yourmailpassord
sendmail_from = info@example.com

이러한 세부 사항은 Outlook 설정과 동일합니다.

사용 Windows용 가짜 Sendmail 메일을 보내려고.

  1. 라는 이름의 폴더를 만듭니다. sendmail ~에 C:\wamp\.
  2. 다음 4개 파일을 추출하세요. sendmail 폴더: sendmail.exe, libeay32.dll, ssleay32.dll 그리고 sendmail.ini.
  3. 그런 다음 구성 C:\wamp\sendmail\sendmail.ini:
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=user@gmail.com
auth_password=your_password
  1. 위의 내용은 Gmail 계정에서 작동합니다.그런 다음 php.ini를 구성합니다.

    sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"

  2. 이제 Apache를 다시 시작하면 기본적으로 이것이 전부입니다.

PHP 하다 mail-command에 대한 인증을 받으십시오!

다음은 WAMPSERVER(windows, php 5.2.17)에서 나를 위해 일하고 있습니다.

php.ini

[mail function]
; For Win32 only.
SMTP = mail.yourserver.com
smtp_port = 25
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = you@yourserver.com

나는 PHP메일러 도구에는 PEAR이 필요하지 않습니다.그러나 어느 쪽이든 오해가 있습니다.SMTP 사용자 및 비밀번호에 대해 PHP 서버 전체 설정을 원하지 않습니다.이는 앱별(또는 페이지별) 설정이어야 합니다.다른 PHP 페이지에서 동일한 계정을 사용하려면 일종의 settings.php 파일에 추가하세요.

하루 종일 이것저것 작업한 끝에 마침내 해결책을 찾았습니다.WAMP를 사용하여 Windows XP에서 보내는 방법은 다음과 같습니다.

  1. Google의 SMTP 서버를 사용하세요.아마도 계정이 필요할 것입니다.
  2. 다운로드 및 설치 가짜 센드메일.방금 다운로드해서 압축을 풀고 WAMP 폴더에 넣었습니다.
  3. 테스트 PHP 파일을 만듭니다.아래를 참조하세요.
<?php
    $message = "test message body";
    $result = mail('recipient@some-domain.com', 'message subject', $message);
    echo "result: $result";
?>
  1. php.ini 파일과 sendmail.ini 파일을 업데이트하십시오(sendmail.ini는 sendmail 폴더에 있음).
  2. 작동하지 않으면 방금 생성한 sendmail 폴더에서 error.log 파일을 확인하세요.

참조:

  1. Postfix(Sendmail 호환)를 설치합니다.
  2. 편집하다 /etc/postfix/main.cf 읽다:
#Relay config
relayhost = smtp.server.net
smtp_use_tls=yes
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_sasl_security_options = noanonymous
  1. 만들다 /etc/postfix/sasl_passwd, 입력하다:
smtp.server.net username:password
  1. 유형 # /usr/sbin/postmap sasl_passwd

  2. 그런 다음 다음을 실행하십시오. service postfix reload

이제 PHP는 다음과 같이 평소처럼 메일을 실행합니다. sendmail -t -i 명령과 Postfix는 이를 가로채어 사용자가 제공한 SMTP 서버로 전달합니다.

Mail PEAR 패키지에서 Mail::factory를 사용하세요. 예.

이 답변은 구식이며 가치가 떨어집니다.모범 사례..

composer require phpmailer/phpmailer

sendmail.php 파일의 다음 항목에는 다음이 필요합니다.

# use namespace
use PHPMailer\PHPMailer\PHPMailer;

# require php mailer
require_once "../vendor/autoload.php";

//PHPMailer Object
$mail = new PHPMailer;

//From email address and name
$mail->From = "from@yourdomain.com";
$mail->FromName = "Full Name";

//To address and name
$mail->addAddress("recepient1@example.com", "Recepient Name");
$mail->addAddress("recepient1@example.com"); //Recipient name is optional

//Address to which recipient will reply
$mail->addReplyTo("reply@yourdomain.com", "Reply");

//CC and BCC
$mail->addCC("cc@example.com");
$mail->addBCC("bcc@example.com");

//Send HTML or Plain Text email
$mail->isHTML(true);

$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}

원하는 대로 구성할 수 있습니다.

하나의 답변을 고려하면 이 질문, PHP 4에서는 PEAR Mail 패키지가 일반적으로 이미 설치되어 있으며 이 매우 간단한 튜토리얼에서는 PHP 파일에 추가해야 하는 몇 줄의 코드를 보여줍니다. http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

  1. 최신 버전을 설치하세요 hMailServer.마지막 단계에서 "hMailServer Administrator를 실행"하세요.
  2. "localhost"에 연결합니다.
  3. "도메인 추가..."
  4. "127.0.0.1"을 설정하십시오. "도메인"으로 "저장"을 클릭하십시오.
  5. "설정" > "프로토콜" > "SMTP" > "이메일 전달"
  6. "로컬 호스트 이름"으로 "localhost"를 설정하고, "SMTP Relayer" 섹션에 데이터를 제공하세요., "저장"을 클릭하세요.
  7. "설정" > "고급" > "IP 범위" > "내 컴퓨터"
  8. "SMTP 인증 필요" 그룹에서 "외부 전자 메일 주소로 외부" 확인란을 비활성화합니다.
  9. php.ini를 수정한 경우 다음 3개 값을 다시 작성하세요.

"SMTP = 로컬호스트",

"smtp_port = 25",

"; sendmail_path = ".

신용 거래: Gmail을 사용하여 이메일을 보내도록 WAMP(localhost)를 구성하는 방법은 무엇입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top