PHP中发送邮件的代码 mail是调用php.ini中配置的smtp你可以用网上其他的代码,不用mail函数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 估计这个不是代码的问题,是你的php没有装发邮件的插件,或者没有设置好之类的 看错误提示,你的机器没有安装smtp服务器,你可以找一个不需要验证免费的smtp服务器。或者,找个用socket发邮件的类,不要用mail 多谢各位的帮忙啊,但我找了半天用socket发送邮件的例子,没弄成啊,各位有没有做过这方面的,有的话给我发一下你们测试成功的例子啊,快急死我了,弄了两天,都没成功,老板急的要啊,如果大家有的话,给我发到 多谢多谢各位的帮忙了! //不需要修改php.ini发邮件,这个是smtp不需要验证情况下用的,如果需要验证的话,要去找个php 发邮件类ini_set('SMTP', '你的smtp服务器,比如smtp.qq.com');ini_set('smtp_port', 25);ini_set('sendmail_from', '你的邮箱');if (mail($emailto, $subject, $message, $headers)) {//成功} else {//失败} class MailCls{ private $mEmails; function setEmailInfo( $emails ){ if( is_array( $emails ) ){ $this->mEmails['email_to'] = $emails['email_to']; #对邮件标题进行处理 if( isset( $emails['email_subject'] ) || !empty($emails['email_subject'])) { eval("$email_subject = "".$emails['email_subject']."";"); $email_subject = str_replace(" ", '', str_replace(" ", '', $emails['email_subject'] )); $this->mEmails['email_subject'] = $emails['email_subject']; } #对邮件内容进行处理 if( isset( $emails['email_message']) || !empty($emails['email_message'])) { eval("$email_message = "".$emails['email_message']."";"); $emails['email_message'] = str_replace(" .", " ..", str_replace(" ", " ", str_replace(" ", " ", str_replace(" ", " ", str_replace(" ", " ", $emails['email_message']))))); $this->mEmails['email_message'] = $emails['email_message']; } #对邮件来源进行处理 if( isset($emails['email_from']) || !empty($emails['email_from'])) $this->mEmails['email_from'] = $emails['email_from']; else $this->mEmails['email_from'] = '<'.$_SERVER['SERVER_ADMIN'].'>'; } } function getEmails( $elements ){ if( isset( $elements ) || !empty( $elements )) return $this->mEmails[$elements]; else return $this->mEmails; } function __destruct(){ unset( $this ); }}class sendMail extends MailCls{ private $mMailCfg; function __construct( $mailcfg ){ if(is_array( $mailcfg )) $this->mMailCfg = $mailcfg; } #发送邮件函数 function sendMails( ){ if(!$fp = fsockopen($this->mMailCfg['server'], $this->mMailCfg['port'], $errno, $errstr, 30)) { errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) CONNECT - Unable to connect to the SMTP server, please check your "mail_config.php".", 0); } stream_set_blocking($fp, true); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != '220') { errorlog('SMTP', "$this->mMailCfg[server]:$this->mMailCfg[port] CONNECT - $lastmessage", 0); } fputs($fp, ($this->mMailCfg['auth'] ? 'EHLO' : 'HELO')." hoodong "); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 220 && substr($lastmessage, 0, 3) != 250) { errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) HELO/EHLO - $lastmessage", 0); } while(1) { $lastmessage = fgets($fp, 512); if(substr($lastmessage, 3, 1) != '-' || empty($lastmessage)) { break; } } if($this->mMailCfg['auth']) { fputs($fp, "AUTH LOGIN "); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 334) { errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) AUTH LOGIN - $lastmessage", 0); } fputs($fp, base64_encode($this->mMailCfg['auth_username'])." "); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 334) { errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) USERNAME - $lastmessage", 0); } fputs($fp, base64_encode($this->mMailCfg['auth_password'])." "); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 235) { errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) PASSWORD - $lastmessage", 0); } $email_from = $this->mMailCfg['from']; } fputs($fp, "MAIL FROM: ".preg_replace("/.*<(.+?)>.*/", "\1", $this->getEmails('email_from'))." "); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 250) { fputs($fp, "MAIL FROM: <".preg_replace("/.*<(.+?)>.*/", "\1", $this->getEmails('email_from'))."> "); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 250) { errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) MAIL FROM - $lastmessage", 0); } } foreach(explode(',', $this->getEmails('email_to')) as $to_user) { $to_user = trim( $to_user ); if( $to_user ) { fputs( $fp, "RCPT TO: $to_user " ); $lastmessage = fgets( $fp, 512 ); if(substr($lastmessage, 0, 3) != 250) { fputs($fp, "RCPT TO: <$to_user> "); $lastmessage = fgets($fp, 512); errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) RCPT TO - $lastmessage", 0); } } } fputs($fp, "DATA "); $lastmessage = fgets($fp, 512); if(substr($lastmessage, 0, 3) != 354) { errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) DATA - $lastmessage", 0); } fputs($fp, "To: ".$this->getEmails('email_to')." From: ".$this->getEmails('email_from')." Subject: ".str_replace(" ", ' ', $this->getEmails('email_subject'))." ".$this->getEmails('email_message')." . "); fputs($fp, "QUIT "); } function getEmailCfg( $elements ){ if(isset( $elements ) || !empty( $elements )) return $this->mMailCfg[$elements]; else return $this->mMailCfg; } function __destruct(){ unset($fp); unset($this); }}/*@调用演示.请设置下面信息@*/#######################################################################$emails = array('email_to' => '[email protected]', #收件人地址'email_subject' => 'test', #邮件标题'email_message' => 'ksadasdasdasdsadasfafdasfdsaff', #邮件正文'email_from' => ' <[email protected]>', #邮件来源); ########################################################################## $mailcfg['server'] = 'smtp.gmail.com'; #smtp服务器地址,这只是例子,你还是需要找一个smtp服务器,比如你公司的就可以 $mailcfg['port'] = '25'; #smtp端口 $mailcfg['auth'] = 1; #显示作者 $mailcfg['from'] = 'gmail <[email protected]>'; #发件人地址 $mailcfg['auth_username'] = '[email protected]'; #发件人邮箱 $mailcfg['auth_password'] = '1234567'; #发件人邮箱密码#调用:$sm = new sendMail( $mailcfg );$sm->setEmailInfo( $emails );$sm->sendMails(); 关与ajax的问题 PHP中如何根据所填表格内容 查询数据库 并自动更新另一个表格 Apache根目录 xml解析 upload file!! www.smartphp.net是不是被黑掉了? 求好的用php作的新闻发布系统 为什么好多好的代码写类都从pear.php中继承呢?? EBB论坛之php版提供下载 谁能帮忙做个“21点”的php 应用程序? 求一个正则,在线等 php人员
ini_set('SMTP', '你的smtp服务器,比如smtp.qq.com');
ini_set('smtp_port', 25);
ini_set('sendmail_from', '你的邮箱');
if (mail($emailto, $subject, $message, $headers)) {
//成功
} else {
//失败
}
private $mEmails;
function setEmailInfo( $emails ){
if( is_array( $emails ) ){
$this->mEmails['email_to'] = $emails['email_to'];
#对邮件标题进行处理
if( isset( $emails['email_subject'] ) || !empty($emails['email_subject'])) {
eval("$email_subject = "".$emails['email_subject']."";");
$email_subject = str_replace(" ", '', str_replace(" ", '', $emails['email_subject'] ));
$this->mEmails['email_subject'] = $emails['email_subject'];
}
#对邮件内容进行处理
if( isset( $emails['email_message']) || !empty($emails['email_message'])) {
eval("$email_message = "".$emails['email_message']."";");
$emails['email_message'] = str_replace(" .", " ..", str_replace(" ", " ", str_replace(" ", " ", str_replace(" ", " ", str_replace(" ", " ", $emails['email_message'])))));
$this->mEmails['email_message'] = $emails['email_message'];
}
#对邮件来源进行处理
if( isset($emails['email_from']) || !empty($emails['email_from']))
$this->mEmails['email_from'] = $emails['email_from'];
else
$this->mEmails['email_from'] = '<'.$_SERVER['SERVER_ADMIN'].'>';
}
}
function getEmails( $elements ){
if( isset( $elements ) || !empty( $elements ))
return $this->mEmails[$elements];
else
return $this->mEmails;
}
function __destruct(){
unset( $this );
}
}
class sendMail extends MailCls{
private $mMailCfg;
function __construct( $mailcfg ){
if(is_array( $mailcfg ))
$this->mMailCfg = $mailcfg;
}
#发送邮件函数
function sendMails( ){
if(!$fp = fsockopen($this->mMailCfg['server'], $this->mMailCfg['port'], $errno, $errstr, 30)) {
errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) CONNECT - Unable to connect to the SMTP server, please check your "mail_config.php".", 0);
}
stream_set_blocking($fp, true); $lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != '220') {
errorlog('SMTP', "$this->mMailCfg[server]:$this->mMailCfg[port] CONNECT - $lastmessage", 0);
} fputs($fp, ($this->mMailCfg['auth'] ? 'EHLO' : 'HELO')." hoodong ");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 220 && substr($lastmessage, 0, 3) != 250) {
errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) HELO/EHLO - $lastmessage", 0);
} while(1) {
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 3, 1) != '-' || empty($lastmessage)) {
break;
}
} if($this->mMailCfg['auth']) {
fputs($fp, "AUTH LOGIN ");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 334) {
errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) AUTH LOGIN - $lastmessage", 0);
} fputs($fp, base64_encode($this->mMailCfg['auth_username'])." ");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 334) {
errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) USERNAME - $lastmessage", 0);
} fputs($fp, base64_encode($this->mMailCfg['auth_password'])." ");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 235) {
errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) PASSWORD - $lastmessage", 0);
} $email_from = $this->mMailCfg['from'];
} fputs($fp, "MAIL FROM: ".preg_replace("/.*<(.+?)>.*/", "\1", $this->getEmails('email_from'))." ");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 250) {
fputs($fp, "MAIL FROM: <".preg_replace("/.*<(.+?)>.*/", "\1", $this->getEmails('email_from'))."> ");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 250) {
errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) MAIL FROM - $lastmessage", 0);
}
} foreach(explode(',', $this->getEmails('email_to')) as $to_user) {
$to_user = trim( $to_user );
if( $to_user ) {
fputs( $fp, "RCPT TO: $to_user " );
$lastmessage = fgets( $fp, 512 );
if(substr($lastmessage, 0, 3) != 250) {
fputs($fp, "RCPT TO: <$to_user> ");
$lastmessage = fgets($fp, 512);
errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) RCPT TO - $lastmessage", 0);
}
}
} fputs($fp, "DATA ");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 354) {
errorlog('SMTP', "($this->mMailCfg[server]:$this->mMailCfg[port]) DATA - $lastmessage", 0);
} fputs($fp, "To: ".$this->getEmails('email_to')." From: ".$this->getEmails('email_from')." Subject: ".str_replace(" ", ' ', $this->getEmails('email_subject'))." ".$this->getEmails('email_message')." . ");
fputs($fp, "QUIT ");
}
function getEmailCfg( $elements ){
if(isset( $elements ) || !empty( $elements ))
return $this->mMailCfg[$elements];
else
return $this->mMailCfg;
}
function __destruct(){
unset($fp);
unset($this);
}
}/*@调用演示.请设置下面信息@*/
#######################################################################$emails = array(
'email_to' => '[email protected]', #收件人地址
'email_subject' => 'test', #邮件标题
'email_message' => 'ksadasdasdasdsadasfafdasfdsaff', #邮件正文
'email_from' => ' <[email protected]>', #邮件来源
);
##########################################################################
$mailcfg['server'] = 'smtp.gmail.com'; #smtp服务器地址,这只是例子,你还是需要找一个smtp服务器,比如你公司的就可以
$mailcfg['port'] = '25'; #smtp端口
$mailcfg['auth'] = 1; #显示作者
$mailcfg['from'] = 'gmail <[email protected]>'; #发件人地址
$mailcfg['auth_username'] = '[email protected]'; #发件人邮箱
$mailcfg['auth_password'] = '1234567'; #发件人邮箱密码#调用:
$sm = new sendMail( $mailcfg );
$sm->setEmailInfo( $emails );
$sm->sendMails();