傳送郵件過程:
1、配置好你的郵箱服務(qq郵箱為例)
2、使用socket連線,建立乙個套接字$fp=fsockopen($hostname,$port,$errno,$errmsg,30)
3、向對方郵件伺服器發出的標識自己的身份的命令fputs($fp,"ehlo ki\r\n");
4、即將進行身份認證fputs($fp,"auth login\r\n")
5、傳送使用者名稱fputs($fp, base64_encode($sendmail_from)."\r\n");
6、傳送密碼fputs($fp, base64_encode($sendmail_psw)."\r\n");
7、告訴對方本次郵件的傳送人是誰
fputs($fp,"mail from: <".preg_replace("/.*\<(.+?)\>.*/","\\1",$mail_from).">\r\n");
8、傳送給誰fputs($fp, "rcpt to: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $touser).">\r\n");
9、告訴對方本次郵件,接下來我們傳送郵件具體內容了fputs($fp, "data\r\n");
10、傳送內容包括頭部和body
11、郵件內容輸入完畢,執行指令退出fputs($fp, "quit\r\n");
**:
<?php function dmail($mail_to,$mail_subject,$mail_body,$mail_from='',$mail_sign=true) stream_set_blocking($fp,true); $re =fgets($fp,512); if(substr($re,0,3) !='220') //向對方郵件伺服器發出的標識自己的身份的命令 fputs($fp,"ehlo ki\r\n"); $re = fgets($fp,512); if(substr($re,0,3)!=220&&substr($re,0,3) !=250) while(1) if(1) fputs($fp, base64_encode($sendmail_from)."\r\n"); //使用者名稱使用base64編碼才行 $re = fgets($fp, 512);//334 if(substr($re, 0, 3) != 334) fputs($fp, base64_encode($sendmail_psw)."\r\n"); //密碼使用base64編碼才行 $re = fgets($fp, 512);//235 authentication successful if(substr($re, 0, 3) != 235) $mail_from = $sendmail_from; } fputs($fp,"mail from: <".preg_replace("/.*\<(.+?)\>.*/","\\1",$mail_from).">\r\n"); //告訴對方本次郵件傳送人是誰 $re = fgets($fp,512); if(substr($re, 0, 3) != 250) } foreach(explode(',',$mail_to) as $touser) } } fputs($fp, "data\r\n"); //告訴對方本次郵件,接下來我們傳送郵件具體內容了 $re = fgets($fp, 512); if(substr($re, 0, 3) != 354) //內容 list($msec, $sec) = explode(' ', microtime()); $headers .= "message-id: <".date('ymdhis', $sec).".".($msec*1000000).".".substr($mail_from, strpos($mail_from,'@')).">".$mail_dlmt; fputs($fp, "date: ".date('r')."\r\n"); fputs($fp, "to: ".$mail_to."\r\n"); fputs($fp, "subject: ".$mail_subject."\r\n"); fputs($fp, $headers."\r\n"); fputs($fp, "\r\n\r\n"); fputs($fp, "$mail_body\r\n.\r\n"); $re = fgets($fp, 512);//250 ok: queued as if(substr($re, 0, 3) != 250) fputs($fp, "quit\r\n"); //221 bye郵件內容輸入完畢後,執行該指令退出 return 'success'; } dmail("接受者的郵箱@qq.com","主題","內容");
參考鏈結 python 發郵件 python發郵件
python提供smtplib模組,該模組定義了乙個smtp客戶端會話物件,可用於使用smtp或esmtp偵聽器守護程式向任何網際網路機器傳送郵件。這是乙個簡單的語法,用來建立乙個smtp物件,稍後將演示如何用它來傳送電子郵件 import smtplib smtpobj smtplib.smtp ...
使用php發郵件三(郵件找回密碼)
11 組裝郵件並傳送郵件 12 傳送完畢,跳轉 接收到郵件點解郵件後 1 通過auth查詢user 2 判斷驗證鏈結時間是否過期 通過儲存的authtime與當前時間比較 3 將修改表set authvalue auth authtime 0 password authvalue 4 列印修改資訊 ...
使用nodemailer發郵件
最近在學node,就想著node能不能像後台那樣傳送郵件,結果找到了nodemailer這個發郵件的外掛程式,下列 使用qq郵箱發郵件 use strict const nodemailer require nodemailer let transporter nodemailer.createtr...