php教程 php手册 Claws Mail 不识别 PHPMailer 发送的附件

Claws Mail 不识别 PHPMailer 发送的附件

Jun 06, 2016 pm 08:09 PM
mail phpmailer 보내다 식별하다 충수

环境:Claws Mail 3.9.1, PHP 5.4.16, PHPMailer 5.2.6 c5e9f7873f 现象:PHPMailer 发送带附件的邮件,直接使用 AddAttachment() 方法 $mailer-AddAttachment$attach_file; 没有其他设置。Claws Mail 收到信以后,查看邮件内容为空白, 附件栏显示: messag

环境:Claws Mail 3.9.1, PHP 5.4.16, PHPMailer 5.2.6 c5e9f7873f

现象:PHPMailer 发送带附件的邮件,直接使用 AddAttachment() 方法

1

$mailer->AddAttachment($attach_file);

로그인 후 복사

没有其他设置。Claws Mail 收到信以后,查看邮件内容为空白, 附件栏显示:

1

2

message/rfc822

    multipart/mixed

로그인 후 복사

以下就是空白了。 而能够正常识别附件的邮件,附件栏内容一般为:

1

2

3

4

message/rfc822

    multipart/mixed

        text/plain

        text/html   (这个是附件的 mime 类型)

로그인 후 복사

gmail 和 mutt 中识别这样的邮件是正常的。

分析:通过对比正常和不正常的邮件原始码, 发现不正常邮件在声明内容是分节之后,多了一句传输编码声明,比如:

1

2

3

Content-Type: multipart/mixed;

    boundary="b1_95a848b14cb4385965320b915d5829dd"

Content-Transfer-Encoding: base64

로그인 후 복사

最后的 Content-Transfer-Encoding 就是比正常邮件多的一行。

由于邮件原始码的这个部分,只是用来声明后续邮件是多个部分组成, 并定义了每个部分的辨识边界 boundary,并没有实际的内容, 所以应当是不需要声明编码类型的。在 PHPMailer 中相关代码为:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

public function GetMailMIME() {

  $result = '';

  switch($this->message_type) {

    case 'inline':

      $result .= $this->HeaderLine('Content-Type', 'multipart/related;');

      $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1].'"');

      break;

    case 'attach':

    case 'inline_attach':

    case 'alt_attach':

    case 'alt_inline_attach':

      $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;');

      $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1].'"');

      break;

    case 'alt':

    case 'alt_inline':

      $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;');

      $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1].'"');

      break;

    default:

      // Catches case 'plain': and case '':

      $result .= $this->TextLine('Content-Type: '.$this->ContentType.'; charset='.$this->CharSet);

      break;

  }

  //RFC1341 part 5 says 7bit is assumed if not specified

  if ($this->Encoding != '7bit') {

    $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding);

  }

로그인 후 복사

特意加上了这个申明,因为按照 RFC1341,7bit 编码类型是默认的。

解决: 或许问题是出在 Claws Mail 上,但我暂时只能修改 PHPMailer 来适应这个问题了。 上面的问题弄清楚之后,在 multipart 后面不添加传输编码声明即可:

1

2

3

4

5

6

7

8

9

10

//RFC1341 part 5 says 7bit is assumed if not specified

// Not after multipart/mixed, claws-mail will not recoginize attachment

if (($this->Encoding != '7bit') && (!in_array($this->message_type, array(

    'attach',

    'inline_attach',

    'alt_attach',

    'alt_inline_attach',

)))) {

  $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding);

}

로그인 후 복사

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

WhatsApp 팁: HD 사진 및 비디오를 보내는 방법 WhatsApp 팁: HD 사진 및 비디오를 보내는 방법 Sep 10, 2023 am 10:13 AM

WhatsApp은 사용자가 메시징 플랫폼을 통해 고해상도 사진과 비디오를 보낼 수 있는 새로운 옵션을 출시했습니다. 이 작업이 어떻게 수행되었는지 알아보려면 계속 읽어보세요. WhatsApp은 iPhone 및 Android 사용자가 고해상도로 사진과 비디오를 보낼 수 있는 업데이트를 출시하여 마침내 서비스의 낮은 품질 미디어 공유 제한을 해결했습니다. 이 옵션은 "HD 품질"이라고 하며 사용자가 최소한의 압축으로 더 선명한 사진과 비디오를 보낼 수 있음을 의미합니다. 예를 들어, iPhone에서 캡처한 이미지는 이전 최대 해상도인 920x1280 대신 3024x4032 해상도로 전송할 수 있으며, 비디오는 848×476 대신 1280×718 해상도로 전송할 수 있습니다.

TikTok에서 다른 사람에게 파일을 보내는 방법은 무엇입니까? 다른 사람에게 보낸 파일을 삭제하는 방법은 무엇입니까? TikTok에서 다른 사람에게 파일을 보내는 방법은 무엇입니까? 다른 사람에게 보낸 파일을 삭제하는 방법은 무엇입니까? Mar 22, 2024 am 08:30 AM

Douyin에서 사용자는 자신의 삶의 세부 사항과 재능을 공유할 수 있을 뿐만 아니라 다른 사용자와 상호 작용할 수도 있습니다. 이 과정에서 사진, 동영상 등의 파일을 다른 사용자에게 전송해야 하는 경우가 있습니다. 그렇다면 Douyin에서 다른 사람에게 파일을 보내는 방법은 무엇입니까? 1. Douyin에서 다른 사람에게 파일을 보내는 방법은 무엇입니까? 1. Douyin을 열고 파일을 보내려는 채팅 인터페이스로 들어갑니다. 2. 채팅 인터페이스에서 "+" 기호를 클릭하고 "파일"을 선택합니다. 3. 파일 옵션에서 사진, 비디오, 오디오 및 기타 파일을 보내도록 선택할 수 있습니다. 보내려는 파일을 선택한 후 "보내기"를 클릭하세요. 4. 상대방이 파일을 수락할 때까지 기다리세요. 상대방이 파일을 수락하면 파일이 성공적으로 전송됩니다. 2. Douyin에서 다른 사람에게 보낸 파일을 삭제하는 방법은 무엇입니까? 1. Douyin을 열고 보낸 문자를 입력하세요.

PHPMailer를 사용하여 여러 사람에게 이메일을 보내는 PHP 방법 및 단계 PHPMailer를 사용하여 여러 사람에게 이메일을 보내는 PHP 방법 및 단계 May 22, 2023 pm 06:10 PM

웹 애플리케이션에서는 한 번에 여러 수신자에게 이메일을 보내야 하는 경우가 많습니다. PHP는 매우 널리 사용되는 웹 개발 언어이고 PHPMailer는 이메일 전송을 위한 일반적인 PHP 클래스 라이브러리입니다. PHPMailer는 풍부한 인터페이스를 제공하여 PHP 애플리케이션에서 이메일을 보다 편리하고 쉽게 보낼 수 있도록 해줍니다. 이 기사에서는 PHPMailer를 사용하여 여러 수신자에게 이메일을 보내는 방법과 단계를 소개합니다. PHPMailer를 다운로드하려면 먼저 공식 웹사이트(

PHP 개발 실습: PHPMailer를 사용하여 MySQL 데이터베이스의 사용자에게 이메일 보내기 PHP 개발 실습: PHPMailer를 사용하여 MySQL 데이터베이스의 사용자에게 이메일 보내기 Aug 05, 2023 pm 06:21 PM

PHP 개발 실습: PHPMailer를 사용하여 MySQL 데이터베이스의 사용자에게 이메일 보내기 소개: 현대 인터넷 구축에서 이메일은 중요한 통신 도구입니다. 전자상거래에서 회원가입, 비밀번호 재설정, 주문확인 등 이메일 발송은 필수적인 기능입니다. 이 기사에서는 PHPMailer를 사용하여 이메일을 보내고 이메일 정보를 MySQL 데이터베이스의 사용자 정보 테이블에 저장하는 방법을 소개합니다. 1. PHPMailer 라이브러리를 설치하십시오. PHPMailer는

C++에서 음성 인식 및 음성 합성을 구현하는 방법은 무엇입니까? C++에서 음성 인식 및 음성 합성을 구현하는 방법은 무엇입니까? Aug 26, 2023 pm 02:49 PM

C++에서 음성 인식 및 음성 합성을 구현하는 방법은 무엇입니까? 음성 인식 및 음성 합성은 오늘날 인공 지능 분야의 인기 있는 연구 방향 중 하나이며 많은 응용 시나리오에서 중요한 역할을 합니다. 이 글에서는 Baidu AI 개방형 플랫폼을 기반으로 C++를 사용하여 음성 인식 및 음성 합성 기능을 구현하는 방법을 소개하고 관련 코드 예제를 제공합니다. 1. 음성인식 음성인식은 사람의 말을 텍스트로 변환하는 기술로 음성비서, 스마트홈, 자율주행 등 다양한 분야에서 널리 활용되고 있다. 다음은 C++를 이용한 음성인식 구현이다.

Java를 이용하여 구현된 얼굴 검출 및 인식 기술 Java를 이용하여 구현된 얼굴 검출 및 인식 기술 Jun 18, 2023 am 09:08 AM

인공지능 기술의 지속적인 발전으로 얼굴 검출 및 인식 기술은 일상생활에서 점점 더 널리 활용되고 있습니다. 얼굴 검출 및 인식 기술은 얼굴 접근 제어 시스템, 얼굴 결제 시스템, 얼굴 검색 엔진 등과 같은 다양한 경우에 널리 사용됩니다. 널리 사용되는 프로그래밍 언어인 Java는 얼굴 감지 및 인식 기술도 구현할 수 있습니다. 이 기사에서는 Java를 사용하여 얼굴 감지 및 인식 기술을 구현하는 방법을 소개합니다. 1. 얼굴 검출 기술 얼굴 검출 기술은 이미지나 동영상에서 얼굴을 검출하는 기술을 말합니다. J에서

PHP 및 PHPMAILER를 사용하여 이미지가 포함된 HTML 메일을 보내는 방법은 무엇입니까? PHP 및 PHPMAILER를 사용하여 이미지가 포함된 HTML 메일을 보내는 방법은 무엇입니까? Jul 22, 2023 am 11:29 AM

PHP 및 PHPMAILER를 사용하여 이미지가 포함된 HTML 메일을 보내는 방법은 무엇입니까? HTML 이메일은 이메일에 그림, 링크 및 스타일을 삽입할 수 있는 더욱 풍부하고 개인화된 형태의 이메일입니다. 삽입된 이미지는 이미지를 첨부 파일로 보내는 대신 HTML 이메일에서 이메일의 일부로 직접 보내는 것을 의미합니다. PHP에서는 PHPMAILER를 사용하여 이미지가 포함된 HTML 이메일을 보낼 수 있습니다. PHPMAILER는 강력한 PHP 이메일 전송 라이브러리입니다

PHP와 PHPMAILER 익히기: 이메일 전송을 위한 자동 회신 기능을 구현하는 방법은 무엇입니까? PHP와 PHPMAILER 익히기: 이메일 전송을 위한 자동 회신 기능을 구현하는 방법은 무엇입니까? Jul 22, 2023 am 11:57 AM

PHP와 PHPMAILER 익히기: 이메일 전송을 위한 자동 회신 기능을 구현하는 방법은 무엇입니까? 현대 사회에서 이메일은 사람들이 매일 소통하는 중요한 수단 중 하나가 되었습니다. 많은 웹사이트나 기업에서는 이메일을 통해 사용자와 소통해야 하며, 이메일에 대한 자동 회신이 매우 중요해졌습니다. 이 기사에서는 PHP와 PHPMailer 라이브러리를 사용하여 이메일 전송에 대한 자동 회신 기능을 구현하는 방법을 소개합니다. 1단계: 사용자의 이메일 정보 가져오기 먼저 사용자의 이메일 정보를 가져와야 합니다. 웹사이트나 애플리케이션에서 다음을 사용하세요.

See all articles