[php] php curl smtp发送邮件
公司的云平台把fsockopen关掉了,如果要使用smtp外网的邮箱来发送邮件的话 只能试试使用curl来进行了
先google了一下,发现很多问相关问题的但没有相关的解答,在phpclasses里也没有找到相关的类于是自己边看stmp的相关协议边开始尝试curl
SMTP协议
这个在网上可以找到多相关的例子,可以自己实验一下使用telnet去连接mail服务器
$ telnet 邮箱SMTP服务地址 25Trying 邮箱服务IP地址...Connected to 邮箱SMTP服务地址.Escape character is '^]'.220 exchange邮箱服务器地址 Microsoft ESMTP MAIL Service ready at Sat, 2 Jun 2012 15:02:12 +0800EHLO 127.0.0.1250-exchange邮箱服务器地址 Hello [邮箱服务IP地址]250-SIZE250-PIPELINING250-DSN250-ENHANCEDSTATUSCODES250-X-ANONYMOUSTLS250-AUTH NTLM LOGIN250-X-EXPS GSSAPI NTLM250-8BITMIME250-BINARYMIME250-CHUNKING250-XEXCH50250 XRDSTAUTH LOGIN334 VXNlcm5hbWU6用户名(base64_encode)334 UGFzc3dvcmQ6密码(base64_encode)235 2.7.0 Authentication successfulMAIL FROM:发件箱地址250 2.1.0 Sender OKRCPT TO:收件箱地址250 2.1.5 Recipient OKDATA354 Start mail input; end with <CRLF>.<CRLF>要发送的内容(这里的相关的规范有很多).250 2.6.0 <0b476f30-3b96-4e3d-84d2-395a96d34000@exchange邮箱服务器地址> Queued mail for deliveryQUIT221 2.0.0 Service closing transmission channelConnection closed by foreign host.
php测试代码:
1 <?php 2 header("content-type:text/html;charset=utf-8"); 3 $smtp = array( 4 "url" => "邮箱SMTP服务器地址", 5 "port" => "邮箱SMTP服务器端口", // 一般为25 6 "username" => "用户名", 7 "password" => "密码", 8 "from" => "发件地址", 9 "to" => "收件地址",10 "subject" => "测试一下标题",11 "body" => "测试一下内容"12 );13 14 $CRLF = "\r\n";15 $test = "";16 $curl = curl_init();17 18 curl_setopt($curl, CURLOPT_URL, $smtp['url']);19 curl_setopt($curl, CURLOPT_PORT, $smtp['port']);20 curl_setopt($curl, CURLOPT_TIMEOUT,10);21 22 function inlineCode($str){23 $str = trim($str);24 return $str?'=?UTF-8?B?'.base64_encode($str).'?= ':'';25 }26 27 function buildHeader($headers){28 $ret = '';29 foreach($headers as $k=>$v){30 $ret.=$k.': '.$v."\n";31 }32 return $ret;33 }34 35 // 36 $header = array(37 'Return-path'=>'<'.$smtp['from'].'>',38 'Date'=>date('r'),39 'From'=> '<'.$smtp['from'].'>',40 'MIME-Version'=>'1.0',41 'Subject'=>inlineCode($smtp['subject']),42 'To'=>$smtp['to'],43 'Content-Type'=>'text/html; charset=UTF-8; format=flowed',44 'Content-Transfer-Encoding'=>'base64'45 );46 $data = buildHeader($header).$CRLF.chunk_split(base64_encode($smtp['body']));47 48 49 $content = "EHLO ".$smtp["url"].$CRLF; // 先得hello一下50 $content .= "AUTH LOGIN".$CRLF.base64_encode($smtp["username"]).$CRLF.base64_encode($smtp["password"]).$CRLF; // 验证登陆51 $content .= "MAIL FROM:".$smtp["from"].$CRLF; // 发件地址52 $content .= "RCPT TO:".$smtp["to"].$CRLF; // 收件地址53 $content .= "DATA".$CRLF.$data.$CRLF.".".$CRLF; // 发送内容54 $content .= "QUIT".$CRLF; // 退出55 56 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl接收返回数据57 curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $content);58 $test = curl_exec($curl);59 var_dump($test);60 echo "<br/>\r\n";61 var_dump($content);62 63 // 结束64 curl_close($curl);
以上只是测试的php
包测试+修改花了近6个小时让产品的代码兼容了fsockopen和curl
以后有空写个兼容fsockopen和curl简单发送邮件的smtp类

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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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











Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

Il existe quatre principaux types d'erreur dans PHP: 1.Notice: Le moins, n'interrompra pas le programme, comme l'accès aux variables non définies; 2. AVERTISSEMENT: grave que d'avis, ne résiliera pas le programme, comme ne contenant aucun fichier; 3. FatalError: le plus grave, finira le programme, comme appeler aucune fonction; 4. PARSEERROR: ERREUR SYNTAXE, EVERA ENCORE LE PROGRAMME EST EXECULTÉ, comme oublier d'ajouter la balise de fin.

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

Les méthodes de demande HTTP incluent GET, Publier, Put and Delete, qui sont utilisées pour obtenir, soumettre, mettre à jour et supprimer respectivement les ressources respectivement. 1. La méthode GET est utilisée pour obtenir des ressources et convient aux opérations de lecture. 2. La méthode post-post est utilisée pour soumettre des données et est souvent utilisée pour créer de nouvelles ressources. 3. La méthode de put est utilisée pour mettre à jour les ressources et convient aux mises à jour complètes. 4. La méthode de suppression est utilisée pour supprimer les ressources et convient aux opérations de suppression.

Dans PHP, Password_Hash et Password_verify Les fonctions doivent être utilisées pour implémenter le hachage de mot de passe sécurisé, et MD5 ou SHA1 ne doit pas être utilisé. 1) Password_hash génère un hachage contenant des valeurs de sel pour améliorer la sécurité. 2) Password_verify Vérifiez le mot de passe et assurez-vous la sécurité en comparant les valeurs de hachage. 3) MD5 et SHA1 sont vulnérables et manquent de valeurs de sel, et ne conviennent pas à la sécurité de mot de passe moderne.

PHP est largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et le développement d'API. 1) E-commerce: Utilisé pour la fonction de panier et le traitement des paiements. 2) Système de gestion du contenu: utilisé pour la génération de contenu dynamique et la gestion des utilisateurs. 3) Développement des API: Utilisé pour le développement de l'API RESTful et la sécurité de l'API. Grâce à l'optimisation des performances et aux meilleures pratiques, l'efficacité et la maintenabilité des applications PHP sont améliorées.

La fonction de flèche a été introduite dans PHP7.4 et est une forme simplifiée de fermetures courtes. 1) Ils sont définis à l'aide de l'opérateur =>, omettant la fonction et utilisent des mots clés. 2) La fonction flèche capture automatiquement la variable de portée actuelle sans le mot clé Utiliser. 3) Ils sont souvent utilisés dans les fonctions de rappel et les calculs courts pour améliorer la simplicité et la lisibilité du code.

PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7
