home
api
develop
badge
wallpaper
rhaco.org
PHP library & setup framework
lingr
bugs
jaja
arbo
rhaco_1_x
arbo rev. 19
trunk/network/mail/Gmail.php
65: http://fixdap.com/p/rhaco/1784
19:
18: network.mail.Mail rev.3306対応
13: Copyrightの表記修正
login = $login; $this->password = $password; parent::Mail($login); } function _talk(&$fp,$message){ fputs($fp,$message."\r\n"); return $this->_is(fgets($fp,4096)); } function _is($msg){ list($code) = explode(" ",$msg); Logger::deep_debug($msg); switch($code){ case 502: case 530: case 550: case 555: Logger::warning($msg); $this->error = $msg; return false; // アクセス拒否 case 235: case 250: // OK case 334: // レスポンス待ち case 354: // 入力の開始 case 221: // 転送チャンネルを閉じる return true; } } /** * 最後のエラーメッセージを取得する */ function error(){ return $this->error; } /** * メールを送信する */ function send($subject="",$message=""){ if(!empty($subject)) $this->subject($subject); if(!empty($message)) $this->message($message); $rtn = false; $fp = fsockopen("tls://smtp.gmail.com",465,$errno,$errstr,30); if($fp){ if("" == fgets($fp,4096)) return false; $this->_talk($fp,"HELO ".$_SERVER["REMOTE_ADDR"]); $this->_talk($fp,"AUTH LOGIN"); $this->_talk($fp,base64_encode($this->login)); $this->_talk($fp,base64_encode($this->password)); $this->_talk($fp,sprintf("MAIL FROM: <%s>",$this->login)); $this->_talk($fp,sprintf("RCPT TO: <%s>",$this->_mailstr($this->to))); $this->_talk($fp,"DATA"); $this->_talk($fp,$this->manuscript()."."); $rtn = $this->_talk($fp,"QUIT"); fclose($fp); } return $rtn; } } ?>