개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.15 10:44

mailparse_msg_get_structure 함수에 대한 질문

목록
  • 엔지니어링고수 9시간 전 2025.05.15 10:44 새글
  • 2
    1
제가 공부 중인 PHP의 mailparse 라이브러리에 대해 질문을 드리겠습니다.
mailparse_msg_get_structure 함수는 이메일 메시지의 구조를 반환하는 함수입니다.
하지만 이 함수의 반환 값에 대해 이해가 잘 안됩니다.

다음과 같은 코드를 사용하여 메시지 구조를 가져오려고 합니다.

php

$message = mailparse_msg_open($file_path);

.struct = mailparse_msg_get_structure($message);



struct 변수는 어떻게 사용해야 하는지 알려주세요?
이 변수는 어떤 데이터 타입을 가지는지 알고 싶습니다.
그리고 이 변수를 사용하여 메시지 구조를 출력하는 방법을 알려주세요.

예를 들어, 다음과 같은 구조가 있는 메시지에서 'To' 헤더의 값을 출력하는 코드는 어떻게 작성해야 하는지 알려주세요.

php

+ To

  - value: example@example.com

+ From

  - value: sender@example.com


    댓글목록

    profile_image
    나우호스팅  9시간 전



    mailparse_msg_get_structure 함수는 이메일 메시지의 구조를 반환하는 함수로, 반환 값은 배열 형태로 구조를 나타냅니다.

    struct 변수는 배열 데이터 타입을 가집니다.

    struct 변수를 사용하여 메시지 구조를 출력하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $message = mailparse_msg_open($file_path);
    
    $struct = mailparse_msg_get_structure($message);
    
    
    
    foreach ($struct as $part) {
    
        echo $part['type'] . "n";
    
        echo $part['subtype'] . "n";
    
        echo $part['disposition'] . "n";
    
        echo $part['parameters']['content-type'] . "n";
    
        echo $part['parameters']['content-transfer-encoding'] . "n";
    
        echo $part['parameters']['content-disposition'] . "n";
    
        echo $part['parameters']['filename'] . "n";
    
    }
    
    


    위 코드는 메시지 구조를 출력하는 예시입니다.

    To 헤더의 값을 출력하는 코드는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $message = mailparse_msg_open($file_path);
    
    $struct = mailparse_msg_get_structure($message);
    
    
    
    foreach ($struct as $part) {
    
        if ($part['type'] == 'text' && $part['subtype'] == 'plain') {
    
            $headers = mailparse_msg_get_part_data($message, $part['number']);
    
            $headers = explode("n", $headers);
    
            foreach ($headers as $header) {
    
                if (strpos($header, 'To:') !== false) {
    
                    echo trim(substr($header, strpos($header, ':') + 1)) . "n";
    
                }
    
            }
    
        }
    
    }
    
    


    위 코드는 To 헤더의 값을 출력하는 예시입니다.

    이메일 메시지의 구조를 분석하고 헤더 값을 출력하는 코드를 작성하는 방법은 위 예시를 참고하시면 됩니다.

    2025-05-15 10:45

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 19,523건 / 1 페이지

검색

게시물 검색