2014-12-12 1 views
0

나는 사용자가 뉴스 레터를 구독 할 수있는 기회를 제공하는 웹 사이트를 운영합니다.이메일을 보내는 동안 SMTP 서버에 계속 로그인했습니다.

사용자가 이메일을 입력하면 토큰과 링크가 포함 된 확인 이메일을 보내려고합니다. 평소처럼 사용자가 링크를 클릭하면 이메일이 확인되어 내 가입자의 데이터베이스에 추가됩니다. 때 (예를 들어, 주소 [email protected]) 내 PHP 코드에

    1. 내 호스트에서 이메일 계정을 만듭니다

      나는 성공적으로 다음 단계를 사용하여 PHPMailer 이것을 구현 그 이메일 주소로 이메일을 보내고 싶습니다. SMTP 로그인은 도메인 이름으로 'localhost'를 사용하고, 1 단계에서 이메일 계정 생성시 사용한 사용자 이름과 비밀번호로 사용하십시오.

    2. 이메일을 보내주십시오.

    사용자가 '뉴스 레터 구독'버튼을 클릭하면로드 아이콘이 표시되고받은 편지함을 확인하라는 메시지가 표시됩니다. 2 단계 (SMTP 로그인)는 PHP에서 실행하는 데 가장 많은 시간이 걸립니다.

    SMTP 계정에 로그인 된 상태로 유지하고 사용자가 뉴스 레터를 신청하여 로딩 시간 (및 서버 부하)을 줄이려면 이메일을 보내는 방법이 있습니까?

  • +0

    PHP가 필요하지 않습니다. http 요청이 완료되면 PHP가 종료됩니다. smtp 연결을 열어두기 위해 서버에서 아무것도 실행되지 않습니다. 그리고 각 PHP 인스턴스는 어쨌든 자체 smtp 연결을 필요로합니다. –

    답변

    0

    과장된 소리가납니다. 매번 로그인 할 필요가 없습니다. PHPMailer를 사용하여 전자 메일을 보내려면

    $mail = new PHPMailer; 
    $mail->From = '[email protected]'; 
    $mail->FromName = 'Mailer'; 
    $mail->addAddress('[email protected]'); 
    
    $mail->Subject = 'Here is the subject'; 
    $mail->Body = 'This is the HTML message body <b>in bold!</b>'; 
    
    
    if(!$mail->send()) { 
        echo 'Message could not be sent.'; 
        echo 'Mailer Error: ' . $mail->ErrorInfo; 
    } else { 
        echo 'Message has been sent'; 
    } 
    
    +0

    아니요 나는 어떤 식 으로든 과충전하지 않습니다. SMTP를 통해 로그인하지 않으면 from은 나의 웹 공간의 도메인 인'somethingelse @ somedomain.com'이고, reply-to는 내가 보낸 사람의 주소 ('noreply @ mydomain.com')에 설정 한 것입니다. – hakermania

    관련 문제