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'] = '';
}
}
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: 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: ");
$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' => 'injection.mail@gmail.com', #收件人地址
'email_subject' => 'test', #邮件标题
'email_message' => 'ksadasdasdasdsadasfafdasfdsaff', #邮件正文
'email_from' => '', #邮件来源
);
##########################################################################
$mailcfg['server'] = 'smtp.gmail.com'; #smtp服务器地址
$mailcfg['port'] = '25'; #smtp端口
$mailcfg['auth'] = 1; #显示作者
$mailcfg['from'] = 'gmail'; #发件人地址
$mailcfg['auth_username'] = 'injection_at@hotmail.com'; #发件人邮箱
$mailcfg['auth_password'] = '12345677'; #发件人邮箱密码
#调用:
$sm = new sendMail( $mailcfg );
$sm->setEmailInfo( $emails );
$sm->sendMails();
现代化家居响应式网站模板源码是以cmseasy进行开发的家居网站模板。该软件可免费使用,模板附带测试数据!模板源码特点:整体采用浅色宽屏设计,简洁大气,电脑手机自适应布局,大方美观,功能齐全,值得推荐的一款模板,每个页面精心设计,美观大方,兼容各大浏览器;所有代码经过SEO优化,使网站更利于搜索引擎排名,是您做环保类网站的明确选择。无论是在电脑、平板、手机上都可以访问到排版合适的网站,即便是微信等
0
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号