PHPMailer를 사용하여 인라인 이미지를 가져오는 데 문제가 있습니다. 다음 줄 없이(즉, 주석 처리하는 경우)
으아아아잘 작동합니다. 다시 추가하면 빈 이메일을 받게 됩니다(Outlook 및 Gmail을 사용해 보았습니다). 나는 그것이 작동하는지 확인하기 위해 "$success="를 추가했습니다.
으아아아화면 출력은 다음과 같습니다.
사진: ../images/Logo.jpg, 로고, Logo.jpg,,, 인라인
사진: ../podbanks/images/XX.jpg, XX, XX.jpg,,, 인라인
메일: 객체(PHPMailerPHPMailerPHPMailer)#1 (71) { ["우선순위"]=> NULL ["CharSet"]=> 문자열(10) "iso-8859-1" ["ContentType"]=> "text/html" ["인코딩"]=> 문자열(4) "8bit" ["ErrorInfo"]=> "" ["발신자"]=> 문자열(18) "admin@example.com" ["발신자 이름"]=> "예제 관리자"["Sender"]=> string(18)"admin@example.com" ["제목"]=> string(27) "이것이 기본 테마입니다." ["본문"]=> string(215) "이것은 기본 텍스트가 포함된 SendEmail의 테스트입니다. 메시지 본문에.이미지도 있습니다..." ["AltBody"]=> string(0) "" ["Ical"]=> 문자열(0) "" ["MIMEBody":보호]=> ["MIMEHeader":보호됨]=> string(0) "" ["mailHeader":보호됨]=> string(0) "" ["WordWrap"]=> int(0) ["메일러"]=> ["Sendmail"]=> string(18) "/usr/sbin/sendmail" ["UseSendmailOptions"]=> bool(true) ["ConfirmReadingTo"]=> "" ["호스트 이름"]=> string(0) "" ["MessageID"]=> ["MessageDate"]=> 문자열(0) "" ["호스트"]=> 문자열(14) "smtp.gmail.com" ["포트"]=> int(587) ["Helo"]=> "tls" ["SMTPAutoTLS"]=> bool(true) ["SMTPAuth"]=> ["SMTPOptions"]=> 배열(0) { } ["사용자 이름"]=> "examplemail@gmail.com" ["password"]=> 문자열(16) "shotlzacfvdubehm" ["AuthType"]=> String(0) "" ["oauth":protected]=> NULL ["Timeout"]=> int(300) ["SMTPDebug"]=> int(0) ["Debugoutput"]=> ["SMTPKeepAlive"]=> bool(false) ["SingleTo"]=> ["SingleToArray":protected]=> array(0) { } ["do_verp"]=> bool(false) ["AllowEmpty"]=> bool(false) ["DKIM_selector"]=> ["DKIM_identity"]=> 문자열(0) "" ["DKIM_passphrase"]=> 문자열(0) "" ["DKIM_domain"]=> 문자열(0) "" ["DKIM_private"]=> 문자열(0) "" ["DKIM_private_string"]=> 문자열(0) "" ["action_function"]=> "" ["XMailer"]=> 문자열(0) "" ["smtp":보호됨]=> ["to":보호됨]=> 배열(2) { [0]=> "aa@gmail.com" 1=> 문자열(10) "AA" } 1=> 배열(2) { [0]=> 문자열(15) "aa@example.com" 1=> 문자열(13) "A/예제" } } ["cc":보호됨]=> 배열(0) { } ["bcc":보호됨]=> 배열(0) { } ["ReplyTo":protected]=> 배열(1) { ["admin@example.com"]=> 배열(2) [0]=> 문자열(18) "admin@example.com" 1=> 문자열(0) "" } } ["all_recipients":protected]=> array(2) { ["aa@gmail.com"]=> bool(true) ["ag@example.com"]=> bool(true) } ["RecipientsQueue":보호됨]=> ["ReplyToQueue":보호됨]=> array(0) { } ["첨부 파일":보호됨]=> 배열(2) { [0]=> 배열(8) { [0]=> "../images/clients/Logo.jpg" 1=> 문자열(13) "Logo.jpg" 2=> 문자열(13) "Logo.jpg" [3]=> 문자열(0) "" [4]=> 문자열(10) "이미지/jpeg" [5]=> bool(false) [6]=> 문자열(6) "인라인" [7]=> 문자열(9) "로고" }1=> 배열(8) { [0]=> 문자열(35) "../images/XX.jpg" 1=> "XX.jpg" 2=> 문자열(16) "XX.jpg" [3]=> 문자열(0) "" [4]=> 문자열(10) "image/jpeg" [5]=> bool(false) [6]=> string(6) "인라인" [7]=> 문자열(3) "XX" } } ["CustomHeader":protected]=> ["lastMessageID":보호됨]=> ["message_type":protected]=> string(0) "" ["boundary":protected]=> array(0) { } ["언어": 보호됨]=> array(0) { } ["error_count":보호됨]=> int(0) ["sign_cert_file":보호됨]=> 문자열(0) "" ["sign_key_file":보호됨]=> ["sign_extracerts_file": 보호] => ["sign_key_pass": 보호] = > string(0) "" ["예외": 보호] = > bool(false) ["uniqueid":protected]=> string(0) "" } 메시지가 전송되었습니다!
GitHub: 3731에서도 포괄적인 문서를 찾을 수 없습니다. 내가 얻은 가장 가까운 것은 이것이었습니다. 하지만 세 번째 매개변수가 정확히 무엇을 하는지 아직도 이해하지 못합니다. 이름을 재정의하고 싶나요? 왜? 어떤 인코딩을 사용해야 합니까(Base64를 시도했지만 둘 다 비워 두었습니다)? "인라인" 폐기 외에 어떤 옵션이 있습니까? 잠깐...
P粉1649427912024-03-29 10:12:27
우선, 수년간 라이브러리에 포함되지 않은 파일(오토로더)을 참조하고 있기 때문에 이전 버전의 PHPMailer를 사용하고 있는 것으로 보이므로 업데이트하시기 바랍니다.
귀하의 코드는 아주 오래된 예를 기반으로 한 것 같습니다. 직접 설정해서는 안 됩니다. Mailer
– isSMTP()
알아서 설정해 드립니다.
디스크에 있는 파일의 이름이 수신자에게 노출되고 싶지 않은 다른 이름인 경우 해당 이름을 재정의해야 할 수 있습니다. 예를 들어 로컬에 파일이 있을 수 있습니다 logo-123456.png
,并希望将其附加为 logo.png
.
인코딩은 거의 항상 base64
해야 합니다. 이미지는 바이너리인 경향이 있어 이메일 보안이 아니므로 기본값으로 두십시오.
MIME 유형은 파일 확장자와 일치해야 하므로 콘텐츠와 일치하지 않는 MIME 유형을 설정해야 하는 특별한 이유가 없는 한 이 항목도 무시할 수 있습니다(PHPMailer가 자동으로 설정함).
Header nofollow noreferrer">RFC2183$disposition
设置来自