Maison développement back-end tutoriel php 在PHP中用Socket发送电子邮件(一)_PHP

在PHP中用Socket发送电子邮件(一)_PHP

Jun 01, 2016 pm 12:42 PM
smtp 信息 发送 命令 响应 服务器 电子邮件 邮件

  在作者所申请的几个PHP 主页空间中,能够提供mail功能的实在不多,总是调用完mail()函数之后就毫无下文了。但是电子邮件在网上生活中的作用越来越大。想一想网虫上网不收邮件能叫真正的网虫吗?邮件的作用我不想再说了,但是如果主页空间不支持mail()发送那么怎么办呢?我也想过通过socket来实现邮件发送,但无奈对用php 进行socket编程不熟悉,再加上发送邮件要用到SMTP协议,又要读不少的英文了,所以一直也没有去研究过。终于有一天我发现了一篇文章,关于用socket编程发送邮件。我如获至宝般将其拷贝下来,并且将其改造成了一个php 可用的类,供大家使用。原来的文章只是一个简单的例子,而且还有一些错误,在我经过多次的实验、改造终于将其改成了一个直接使用socket,向指定的邮箱发送邮件的类,如果大家和前面关于发送MIME的文章结合起来,就可以实现在不支持mail()函数的网站上发送邮件了。因为发送邮件的过程需要时间,可能与mail()的处理机制还不完全一样,所以速度要慢一些,但是可以解决需要发送邮件功能的燃眉之急,同时你也可以学习用php 进行socket编程。下面就将这个类的实现原理介绍给大家,同时向大家讲解一些关于SMTP的基本知识。

Socket编程介绍
  向大家申明,本人不是一个TCP/IP编程专家,故在此只是讲出了我的一点理解和体会。

  使用fsockopen函数打开一个Internet连接,函数语法格式:

int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

  参数的意思我想不用讲了,这里由于要使用SMTP协议,所以端口号为25。在打开连接成功后,会返回一
个socket句柄,使用它就可以象使用文件句柄一样的。可使用的操作有fputs(),fgets(),feof(),fclose()
等。

  很简单地介绍就到这里吧。

SMTP的基础
  基于TCP/IP的因特网协议一般的命令格式都是通过请求/ 应答方式实现的,采用的都是文本信息,所以处理起来要容易一些。SMTP是简单邮件传输协议的简称,它可以实现客户端向服务器发送邮件的功能。所以下面所讲的命令是指客户端向服务器发出请求指令,而响应则是指服务器返回给客户端的信息。

  SMTP分为命令头和信息体两部分。命令头主要完成客户端与服务器的连接,验证等。整个过程由多条命令组成。每个命令发到服务器后,由服务器给出响应信息,一般为3 位数字的响应码和响应文本。不同的服务器返回的响应码是遵守协议的,但是响应正文本则不必。每个命令及响应的最后都有一个回车符,这样使用fputs()和fgets()就可以进行命令与响应的处理了。SMTP的命令及响应信息都是单行的。信息体则是邮件的正文部分,最后的结束行应以单独的\".\"作为结束行。

  客户端一些常用的SMTP指令为:

HELO hostname: 与服务器打招呼并告知客户端使用的机器名字,可以随便填写
MAIL FROM: sender_id : 告诉服务器发信人的地址
RCPT TO: receiver_id : 告诉服务器收信人的地址
DATA : 下面开始传输信件内容,且最后要以只含有.的特殊行结束
RESET: 取消刚才的指令,从新开始
VERIFY userid: 校验帐号是否存在(此指令为可选指令,服务器可能不支持)
QUIT : 退出连接,结束
  服务器返回的响应信息为(格式为:响应码+空格+解释):

220 服务就绪(在socket连接成功时,会返回此信息)
221 正在处理
250 请求邮件动作正确,完成(HELO,MAIL FROM,RCPT TO,QUIT指令执行成功会返回此信息)
354 开始发送数据,结束以 .(DATA指令执行成功会返回此信息,客户端应发送信息)
500 语法错误,命令不能识别
550 命令不能执行,邮箱无效
552 中断处理:用户超出文件空间
  下面给出一个简单的命令头(这是在打开socket之后做的),是我向stmp.263.net发邮件的测试结果:

HELO limodou
250 smtp.263.net
MAIL FROM: chatme@263.net
250 Ok
RCPT TO: chatme@263.net
250 Ok
DATA
354 End data with .
To: chatme@263.net
From: chatme@263.net
Subject: test
From: chatme@263.net
test
.
QUIT
250 Ok: queued as C46411C5097E0
  这就是一些SMTP的简单知识。相关内容可以查阅RFC。

RFC 821定义了收/发电子邮件的相关指令。
RFC 822则制定了邮件內容的格式。
RFC 2045-2048制定了多媒体邮件內容的格式,
RFC 1113, 1422-1424则是讨论如何增进电子邮件的保密性。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

E-mails Outlook perdus du panneau de configuration dans Windows 11 E-mails Outlook perdus du panneau de configuration dans Windows 11 Feb 29, 2024 pm 03:16 PM

L'icône de messagerie Outlook est-elle absente du panneau de configuration de Windows 11 ? Cette situation inattendue a semé la confusion et l'inquiétude chez certaines personnes qui comptent sur OutlookMail pour leurs besoins de communication. Pourquoi mes e-mails Outlook n'apparaissent-ils pas dans le Panneau de configuration ? Il peut y avoir plusieurs raisons possibles pour lesquelles il n'y a pas d'icônes de messagerie Outlook dans le Panneau de configuration : Outlook n'est pas installé correctement. L'installation des applications Office à partir du Microsoft Store n'ajoute pas l'applet Mail au Panneau de configuration. L'emplacement du fichier mlcfg32.cpl dans le Panneau de configuration est manquant. Le chemin d'accès au fichier mlcfg32.cpl dans le registre est incorrect. Le système d'exploitation n'est actuellement pas configuré pour exécuter cette application

Comment exécuter les commandes SUDO sous Windows 11/10 Comment exécuter les commandes SUDO sous Windows 11/10 Mar 09, 2024 am 09:50 AM

La commande sudo permet aux utilisateurs d'exécuter des commandes en mode privilèges élevés sans passer en mode superutilisateur. Cet article explique comment simuler des fonctions similaires aux commandes sudo dans les systèmes Windows. Qu'est-ce que la commande Shudao ? Sudo (abréviation de « superuser do ») est un outil de ligne de commande qui permet aux utilisateurs de systèmes d'exploitation Unix tels que Linux et MacOS d'exécuter des commandes avec des privilèges élevés généralement détenus par les administrateurs. Exécution de commandes SUDO sous Windows 11/10 Cependant, avec le lancement de la dernière version préliminaire de Windows 11 Insider, les utilisateurs de Windows peuvent désormais profiter de cette fonctionnalité. Cette nouvelle fonctionnalité permet aux utilisateurs de

Comment vérifier l'adresse MAC de la carte réseau sous Win11 ? Comment utiliser la commande pour obtenir l'adresse MAC de la carte réseau sous Win11 ? Comment vérifier l'adresse MAC de la carte réseau sous Win11 ? Comment utiliser la commande pour obtenir l'adresse MAC de la carte réseau sous Win11 ? Feb 29, 2024 pm 04:34 PM

Cet article expliquera aux lecteurs comment utiliser l'invite de commande (CommandPrompt) pour trouver l'adresse physique (adresse MAC) de la carte réseau dans le système Win11. Une adresse MAC est un identifiant unique pour une carte d'interface réseau (NIC), qui joue un rôle important dans les communications réseau. Grâce à l'invite de commande, les utilisateurs peuvent facilement obtenir les informations d'adresse MAC de toutes les cartes réseau de l'ordinateur actuel, ce qui est très utile pour le dépannage du réseau, la configuration des paramètres réseau et d'autres tâches. Méthode 1 : utilisez « Invite de commandes » 1. Appuyez sur la combinaison de touches [Win+X], ou [cliquez avec le bouton droit], cliquez sur le [logo Windows] dans la barre des tâches, et dans l'élément de menu qui s'ouvre, sélectionnez [Exécuter] ; . Exécutez la fenêtre, entrez la commande [cmd], puis.

Comment envoyer des fichiers à d'autres sur TikTok ? Comment supprimer les fichiers que j'ai envoyés à d'autres ? Comment envoyer des fichiers à d'autres sur TikTok ? Comment supprimer les fichiers que j'ai envoyés à d'autres ? Mar 22, 2024 am 08:30 AM

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é.

Où se trouve le mode de session amélioré Hyperv ? Conseils pour activer ou désactiver le mode de session amélioré Hyper-V à l'aide des commandes dans Win11. Où se trouve le mode de session amélioré Hyperv ? Conseils pour activer ou désactiver le mode de session amélioré Hyper-V à l'aide des commandes dans Win11. Feb 29, 2024 pm 05:52 PM

Dans le système Win11, vous pouvez activer ou désactiver le mode de session amélioré Hyper-V via des commandes. Cet article expliquera comment utiliser les commandes pour fonctionner et aidera les utilisateurs à mieux gérer et contrôler les fonctions Hyper-V dans le système. Hyper-V est une technologie de virtualisation fournie par Microsoft. Elle est intégrée à Windows Server et Windows 10 et 11 (sauf Home Edition), permettant aux utilisateurs d'exécuter des systèmes d'exploitation virtuels sur les systèmes Windows. Bien que les machines virtuelles soient isolées du système d'exploitation hôte, elles peuvent toujours utiliser les ressources de l'hôte, telles que les cartes son et les périphériques de stockage, via les paramètres. L'un des paramètres clés consiste à activer le mode de session améliorée. Le mode de session amélioré est Hyper

Guide des meilleures pratiques pour créer des serveurs proxy IP avec PHP Guide des meilleures pratiques pour créer des serveurs proxy IP avec PHP Mar 11, 2024 am 08:36 AM

Dans la transmission de données sur réseau, les serveurs proxy IP jouent un rôle important, aidant les utilisateurs à masquer leurs véritables adresses IP, à protéger la confidentialité et à améliorer la vitesse d'accès. Dans cet article, nous présenterons le guide des meilleures pratiques sur la façon de créer un serveur proxy IP avec PHP et fournirons des exemples de code spécifiques. Qu'est-ce qu'un serveur proxy IP ? Un serveur proxy IP est un serveur intermédiaire situé entre l'utilisateur et le serveur cible. Il agit comme une station de transfert entre l'utilisateur et le serveur cible, transmettant les demandes et les réponses de l'utilisateur. En utilisant un serveur proxy IP

Comment configurer Dnsmasq comme serveur relais DHCP Comment configurer Dnsmasq comme serveur relais DHCP Mar 21, 2024 am 08:50 AM

Le rôle d'un relais DHCP est de transmettre les paquets DHCP reçus vers un autre serveur DHCP du réseau, même si les deux serveurs se trouvent sur des sous-réseaux différents. En utilisant un relais DHCP, vous pouvez déployer un serveur DHCP centralisé dans le centre réseau et l'utiliser pour attribuer dynamiquement des adresses IP à tous les sous-réseaux/VLAN du réseau. Dnsmasq est un serveur de protocole DNS et DHCP couramment utilisé qui peut être configuré en tant que serveur relais DHCP pour faciliter la gestion des configurations d'hôtes dynamiques sur le réseau. Dans cet article, nous allons vous montrer comment configurer Dnsmasq comme serveur relais DHCP. Sujets de contenu : Topologie du réseau Configuration d'adresses IP statiques sur un relais DHCP D sur un serveur DHCP centralisé

Hyper pratique ! Commandes Sar qui feront de vous un maître Linux Hyper pratique ! Commandes Sar qui feront de vous un maître Linux Mar 01, 2024 am 08:01 AM

1. Présentation La commande sar affiche les rapports d'utilisation du système grâce aux données collectées à partir des activités du système. Ces rapports sont composés de différentes sections, chacune contenant le type de données et la date à laquelle les données ont été collectées. Le mode par défaut de la commande sar affiche l'utilisation du processeur à différents incréments de temps pour diverses ressources accédant au processeur (telles que les utilisateurs, les systèmes, les planificateurs d'E/S, etc.). De plus, il affiche le pourcentage de CPU inactif pour une période de temps donnée. La valeur moyenne de chaque point de données est répertoriée au bas du rapport. sar rapporte des données collectées toutes les 10 minutes par défaut, mais vous pouvez utiliser diverses options pour filtrer et ajuster ces rapports. Semblable à la commande uptime, la commande sar peut également vous aider à surveiller la charge du processeur. Grâce à sar, vous pouvez comprendre l'apparition d'une charge excessive

See all articles