Claws 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() 方法
$mailer->AddAttachment($attach_file);
没有其他设置。Claws Mail 收到信以后,查看邮件内容为空白, 附件栏显示:
message/rfc822 multipart/mixed
以下就是空白了。 而能够正常识别附件的邮件,附件栏内容一般为:
message/rfc822 multipart/mixed text/plain text/html (这个是附件的 mime 类型)
gmail 和 mutt 中识别这样的邮件是正常的。
分析:通过对比正常和不正常的邮件原始码, 发现不正常邮件在声明内容是分节之后,多了一句传输编码声明,比如:
Content-Type: multipart/mixed; boundary="b1_95a848b14cb4385965320b915d5829dd" Content-Transfer-Encoding: base64
最后的 Content-Transfer-Encoding 就是比正常邮件多的一行。
由于邮件原始码的这个部分,只是用来声明后续邮件是多个部分组成, 并定义了每个部分的辨识边界 boundary,并没有实际的内容, 所以应当是不需要声明编码类型的。在 PHPMailer 中相关代码为:
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 后面不添加传输编码声明即可:
//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); }
原文地址:Claws Mail 不识别 PHPMailer 发送的附件, 感谢原作者分享。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

WhatsApp a lancé une nouvelle option qui permet aux utilisateurs d'envoyer des photos et des vidéos en haute résolution via la plateforme de messagerie. Lisez la suite pour savoir comment procéder. WhatsApp a publié une mise à jour qui permet aux utilisateurs d'iPhone et d'Android d'envoyer des photos et des vidéos en haute résolution, répondant enfin aux limitations de partage multimédia de mauvaise qualité du service. L'option s'appelle « Qualité HD » et signifie que les utilisateurs peuvent envoyer des photos et des vidéos plus claires avec une compression minimale. Par exemple, les images capturées sur l'iPhone peuvent désormais être envoyées à une résolution de 3 024 x 4 032 au lieu du maximum précédent de 920 x 1 280, tandis que les vidéos peuvent être envoyées à une résolution de 1 280 x 718 au lieu de 848 x 476.

Sur Douyin, les utilisateurs peuvent non seulement partager les détails de leur vie et leurs talents, mais également interagir avec d'autres utilisateurs. Dans ce processus, nous devons parfois envoyer des fichiers à d'autres utilisateurs, tels que des images, des vidéos, etc. Alors, comment envoyer des fichiers à d’autres sur Douyin ? 1. Comment envoyer des fichiers à d'autres sur Douyin ? 1. Ouvrez Douyin et entrez dans l'interface de discussion où vous souhaitez envoyer des fichiers. 2. Cliquez sur le signe « + » dans l'interface de discussion et sélectionnez « Fichier ». 3. Dans les options de fichiers, vous pouvez choisir d'envoyer des images, des vidéos, de l'audio et d'autres fichiers. Après avoir sélectionné le fichier que vous souhaitez envoyer, cliquez sur « Envoyer ». 4. Attendez que l'autre partie accepte votre fichier. Une fois que l'autre partie l'aura accepté, le fichier sera transféré avec succès. 2. Comment supprimer les fichiers envoyés à d'autres sur Douyin ? 1. Ouvrez Douyin et saisissez le texte que vous avez envoyé.

Dans les applications Web, il est souvent nécessaire d’envoyer des emails à plusieurs destinataires à la fois. PHP est un langage de développement Web très populaire et PHPMailer est une bibliothèque de classes PHP courante pour l'envoi d'e-mails. PHPMailer fournit une interface riche, rendant l'envoi d'e-mails dans des applications PHP plus pratique et plus facile à utiliser. Dans cet article, nous présenterons les méthodes et les étapes à suivre pour utiliser PHPMailer pour envoyer des e-mails à plusieurs destinataires. Pour télécharger PHPMailer, vous devez d'abord vous rendre sur le site officiel (

Pratique de développement PHP : utilisez PHPMailer pour envoyer des e-mails aux utilisateurs de la base de données MySQL Introduction : Dans la construction de l'Internet moderne, l'e-mail est un outil de communication important. Qu’il s’agisse d’enregistrement d’utilisateur, de réinitialisation de mot de passe ou de confirmation de commande en e-commerce, l’envoi d’emails est une fonction essentielle. Cet article explique comment utiliser PHPMailer pour envoyer des e-mails et enregistrer les informations de courrier électronique dans le tableau d'informations utilisateur de la base de données MySQL. 1. Installez la bibliothèque PHPMailer PHPMailer est

Comment implémenter la reconnaissance vocale et la synthèse vocale en C++ ? La reconnaissance vocale et la synthèse vocale constituent aujourd’hui l’une des directions de recherche les plus populaires dans le domaine de l’intelligence artificielle et jouent un rôle important dans de nombreux scénarios d’application. Cet article présentera comment utiliser C++ pour implémenter des fonctions de reconnaissance vocale et de synthèse vocale basées sur la plateforme ouverte Baidu AI, et fournira des exemples de code pertinents. 1. Reconnaissance vocale La reconnaissance vocale est une technologie qui convertit la parole humaine en texte. Elle est largement utilisée dans les assistants vocaux, les maisons intelligentes, la conduite autonome et d'autres domaines. Ce qui suit est l'implémentation de la reconnaissance vocale en utilisant C++

Avec le développement continu de la technologie de l’intelligence artificielle, la technologie de détection et de reconnaissance des visages est devenue de plus en plus largement utilisée dans la vie quotidienne. Dans diverses occasions, telles que les systèmes de contrôle d'accès facial, les systèmes de paiement facial, les moteurs de recherche de visage, etc., les technologies de détection et de reconnaissance faciale sont largement utilisées. En tant que langage de programmation largement utilisé, Java peut également mettre en œuvre une technologie de détection et de reconnaissance des visages. Cet article explique comment utiliser Java pour implémenter la technologie de détection et de reconnaissance des visages. 1. Technologie de détection de visage La technologie de détection de visage fait référence à la technologie qui détecte les visages dans les images ou les vidéos. en J

Comment envoyer du courrier HTML avec des images intégrées en utilisant PHP et PHPMAILER ? Le courrier électronique HTML est une forme de courrier électronique plus riche et plus personnalisée qui permet d'insérer des images, des liens et des styles dans le courrier électronique. Les images intégrées font référence à l'envoi d'images directement dans le cadre de l'e-mail HTML au lieu de les envoyer sous forme de pièces jointes. En PHP, nous pouvons utiliser PHPMAILER pour envoyer des e-mails HTML avec des images intégrées. PHPMAILER est une puissante bibliothèque de classes d'envoi d'e-mails PHP

Maîtriser PHP et PHPMAILER : Comment implémenter la fonction de réponse automatique pour l'envoi d'email ? Dans la société moderne, le courrier électronique est devenu l’un des moyens importants de communication dans la vie quotidienne. De nombreux sites Web ou entreprises doivent communiquer avec les utilisateurs par e-mail, et la réponse automatique aux e-mails est devenue très importante. Cet article explique comment utiliser PHP et la bibliothèque PHPMailer pour implémenter la fonction de réponse automatique pour l'envoi d'e-mails. Étape 1 : obtenir les informations de messagerie de l'utilisateur. Tout d'abord, nous devons obtenir les informations de messagerie de l'utilisateur. Sur un site Web ou une application, utilisez
