source

php.ini & SMTP= - 사용자 이름과 비밀번호 전달 방법

factcode 2023. 1. 29. 20:15
반응형

php.ini & SMTP= - 사용자 이름과 비밀번호 전달 방법

My ISP계정에서 아웃바운드용 사용자 이름과 비밀번호를 전송해야 합니다.SMTP우편으로 보내겠습니다.

입수 방법PHP실행할 때 사용하다php.mail()?php.ini파일에는 서버의 엔트리만 포함되어 있습니다.(SMTP= )그리고.From: (sendmail_from= ).

PHPmail()명령어는 인증을 지원하지 않습니다.옵션:

  1. PHMailer - 튜토리얼
  2. PEAR - 튜토리얼
  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

이러한 상세 내역은 아웃룩 설정과 동일합니다.

메일을 발송하려면 Windows용 가짜 발송 메일을 사용하십시오.

  1. 폴더 생성:sendmailC:\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
  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 서버에 릴레이합니다.

PHPMailer 툴은 PEAR가 필요 없기 때문에 저는 PHPMailer 툴은 PEAR가 필요 없습니다.그러나 어느 쪽이든 SMTP 사용자와 패스워드에 대해 PHP 서버 전체의 설정을 원하지 않는 것으로 오해하고 있습니다.이것은, 애플리케이션 단위(또는 페이지 단위)의 설정이어야 합니다.다른 PHP 페이지에서 동일한 계정을 사용하려면 해당 계정을 특정 설정에 추가하십시오.php 파일.

하루 종일 작업한 끝에 드디어 해결책을 찾았습니다.WAMP를 탑재한 Windows XP에서 송신하는 방법은 다음과 같습니다.

  1. Google의 SMTP 서버를 사용합니다.아마 계정이 필요할 겁니다.
  2. 가짜 Sendmail을 다운로드하여 설치합니다.방금 다운로드해서 압축을 풀고 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 파일이 작동하지 않으면 확인합니다.

레퍼런스:

이 답변들은 시대에 뒤떨어져서 더 이상 사용되지 않는다.실제 베스트 프랙티스는 다음과 같습니다.

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";
}

이것은, 임의의 방법으로 설정할 수 있습니다.

Mail PEAR 패키지에서 Mail::factory를 사용합니다.예.

  1. 최신 hMailServer를 설치합니다.마지막 단계에서 "hMailServer Administrator 실행"을 선택합니다.
  2. "localhost"에 연결합니다.
  3. "도메인 추가..."
  4. "127.0.0.1"을 "도메인"으로 설정하고 "저장"을 클릭합니다.
  5. '설정' > '프로토콜' > 'SMTP' > '이메일 전달'
  6. "localhost"를 "Local host name"으로 설정하고 "SMTP Relayer" 섹션에 데이터를 입력한 후 "Save"를 클릭합니다.
  7. '설정' > '상세설정' > 'IP범위' > '내 컴퓨터'
  8. "SMTP 인증확인 필요" 그룹에서 "외부 전자우편 주소" 확인란을 사용 불가능으로 설정합니다.
  9. php.ini를 변경한 경우 다음 3가지 값을 다시 씁니다.

"SMTP = localhost",

"syslog_port = 25",

"; sendmail_path = ".

크레딧: Gmail을 사용하여 이메일을 보내도록 WAMP(localhost)를 설정하는 방법

언급URL : https://stackoverflow.com/questions/112190/php-ini-smtp-how-do-you-pass-username-password

반응형