如果您使用PHP语言编写网站程序,可以调用fsockopen函数发送邮件。本文为您提供可参考的示例代码。

使用fsockopen函数发信的示例代码如下所示:

<?
echo send_mail('收件人邮箱','发信测试','测试'>);
<?
function send_mail($to, $subject = 'No subject', $body) {
   $loc_host = "test";                                  //发信计算机名,可自定义
  $smtp_acc = "test@hichina.com";                       //Smtp认证的用户名
   $smtp_pass="test";                                 //Smtp认证的密码,一般为pop3密码
   $smtp_host="mx.hichina.com";                       //SMTP服务器地址,类似smtp.tom.com   
   $from="test@hichina.com"                              //发信人的Email地址
   $headers = "Content-Type: text/plain; charset=\"gb2312\"\r\nContent-Transfer-Encoding: base64";
   $lb="\r\n";                                                    //linebreak

$hdr = explode($lb,$headers);                                         //解析后的hdr
if($body) {$bdy = preg_replace("/^\./","..",explode($lb,$body));}         //解析后的Body
$smtp = array(
 array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),                   //EHLO,期待返回220或者250 
  array("AUTH LOGIN".$lb,"334","AUTH error:"),                            //发送Auth Login,期待返回334 
  array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),   //发送经过Base64编码的用户名,期待返回334
  array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : ")); //发送经过Base64编码的密码,期待返回235
$smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: ");   //发送Mail From,期待返回250
$smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");         //发送Rcpt To,期待返回250
$smtp[] = array("DATA".$lb,"354","DATA error: ");                          //发送DATA,期待返回354
$smtp[] = array("From: ".$from.$lb,"","");                                 //发送From
$smtp[] = array("To: ".$to.$lb,"","");                                     //发送To
$smtp[] = array("Subject: ".$subject.$lb,"","");                           //发送标题
foreach($hdr as $h) {$smtp[] = array($h.$lb,"","");}                       //发送其他Header内容
$smtp[] = array($lb,"","");                                                //发送一个空行,结束Header发送
if($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,"","");}}    //发送信件主体
$smtp[] = array(".".$lb,"250","DATA(end)error: ");                         //发送“.”表示信件结束,期待返回250
$smtp[] = array("QUIT".$lb,"221","QUIT error: ");                          //发送Quit,退出,期待返回221

$fp = @fsockopen($smtp_host, 25);                                          //打开smtp服务器端口
if (!$fp) echo "Error: Cannot conect to ".$smtp_host."
";
while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }}
$result_str="";

foreach($smtp as $req){                                                     //发送smtp数组中的命令/数据
  @fputs($fp, $req[0]);                                                    //发送信息
if($req[1]){                                                                //如果需要接收服务器返回信息
 while($result = @fgets($fp, 1024)){                                       //接收信息
     if(substr($result,3,1) == " ") { break; }
   };
    if (!strstr($req[1],substr($result,0,3))){
         $result_str.=$req[2].$result."
";  
             }
           }
         }
   @fclose($fp);                                                           //关闭连接
   return $result_str;
}
?>