* Code for mail test.

This commit is contained in:
tanghucheng
2022-05-07 17:27:37 +08:00
parent 1d1facfd44
commit 809ce93037
23 changed files with 887 additions and 0 deletions
+435
View File
@@ -0,0 +1,435 @@
<?php
class mailTest
{
/**
* __construct.
*
* @access public
* @return void
*/
public function __construct()
{
global $tester;
global $dao;
$this->dao = $dao;
$this->tester = $tester;
$this->objectModel = $tester->loadModel('mail');
}
/**
* AutoDetect.
*
* @param int $email
* @access public
* @return void
*/
public function autoDetectTest($email)
{
$objects = $this->objectModel->autoDetect($email);
if(dao::isError()) return dao::getError();
if(!$objects->host) return '没有检测到相关信息';
return $objects;
}
/**
* Get config from provider.
*
* @param int $domain
* @param int $username
* @access public
* @return void
*/
public function getConfigFromProviderTest($domain, $username)
{
$objects = $this->objectModel->getConfigFromProvider($domain, $username);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Get config by MXRR.
*
* @param int $domain
* @param int $username
* @access public
* @return void
*/
public function getConfigByMXRRTest($domain, $username)
{
$objects = $this->objectModel->getConfigByMXRR($domain, $username);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Get config by detecting SMTP.
*
* @param int $domain
* @param int $username
* @param int $port
* @access public
* @return void
*/
public function getConfigByDetectingSMTPTest($domain, $username, $port)
{
$objects = $this->objectModel->getConfigByDetectingSMTP($domain, $username, $port);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Set MTA.
*
* @access public
* @return void
*/
public function setMTATest()
{
$objects = $this->objectModel->setMTA();
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Set SMTP.
*
* @access public
* @return void
*/
public function setSMTPTest()
{
$objects = $this->objectModel->setSMTP();
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Set PhpMail.
*
* @access public
* @return void
*/
public function setPhpMailTest()
{
$objects = $this->objectModel->setPhpMail();
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Set sendmail.
*
* @access public
* @return void
*/
public function setSendMailTest()
{
$objects = $this->objectModel->setSendMail();
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Set GMail.
*
* @access public
* @return void
*/
public function setGMailTest()
{
$this->objectModel->setGMail();
return $this->setMTATest();
}
/**
* Send.
*
* @param int $toList
* @param int $subject
* @param string $body
* @param string $ccList
* @param int $includeMe
* @param array $emails
* @access public
* @return void
*/
public function sendTest($toList, $subject, $body = '', $ccList = '', $includeMe = false, $emails = array())
{
$objects = $this->objectModel->send($toList, $subject, $body, $ccList, $includeMe, $emails);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Set TO.
*
* @param int $toList
* @param int $emails
* @access public
* @return void
*/
public function setTOTest($toList, $emails)
{
$objects = $this->objectModel->setTO($toList, $emails);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Set CC.
*
* @param int $ccList
* @param int $emails
* @access public
* @return void
*/
public function setCCTest($ccList, $emails)
{
$this->objectModel->setCC($ccList, $emails);
return $this->setMTATest();
}
/**
* Set subject.
*
* @param int $subject
* @access public
* @return void
*/
public function setSubjectTest($subject)
{
$this->objectModel->setSubject($subject);
return $this->setMTATest();
}
/**
* Set body.
*
* @param int $body
* @access public
* @return void
*/
public function setBodyTest($body)
{
$this->objectModel->setBody($body);
return $this->setMTATest();
}
/**
* Set errorlang.
*
* @access public
* @return void
*/
public function setErrorLangTest()
{
$objects = $this->objectModel->setErrorLang();
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* clear.
*
* @access public
* @return void
*/
public function clearTest()
{
$objects = $this->objectModel->clear();
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Mail exist.
*
* @access public
* @return void
*/
public function mailExistTest()
{
$object = $this->objectModel->mailExist();
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Is error.
*
* @access public
* @return void
*/
public function isErrorTest()
{
$object = $this->objectModel->isError();
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Get error.
*
* @access public
* @return void
*/
public function getErrorTest()
{
$objects = $this->objectModel->getError();
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Add queue.
*
* @param int $toList
* @param int $subject
* @param string $body
* @param string $ccList
* @param int $includeMe
* @access public
* @return void
*/
public function addQueueTest($toList, $subject, $body = '', $ccList = '', $includeMe = false)
{
$this->objectModel->addQueue($toList, $subject, $body, $ccList, $includeMe);
if($toList and $subject)
{
$id = $this->dao->lastInsertID();
$object = $this->dao->select('*')->from(TABLE_NOTIFY)->where('id')->eq($id)->fetch();
}
if(!$object) return '没有数据提交';
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Get queue.
*
* @param string $status
* @param string $orderBy
* @param int $pager
* @access public
* @return void
*/
public function getQueueTest($status = '', $orderBy = 'id_desc', $pager = null)
{
$objects = $this->objectModel->getQueue($status = '', $orderBy = 'id_desc', $pager = null);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Get queue by id.
*
* @param int $queueID
* @access public
* @return void
*/
public function getQueueByIdTest($queueID)
{
$object = $this->objectModel->getQueueById($queueID);
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Merge mails.
*
* @param int $user
* @access public
* @return void
*/
public function mergeMailsTest($user)
{
$mails = $this->dao->select('*')->from(TABLE_NOTIFY)
->where('objectType')->eq('mail')
->andWhere('toList')->eq($user)
->fetchAll();
$object = $this->objectModel->mergeMails($mails);
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Sendmail.
*
* @param int $objectID
* @param int $actionID
* @access public
* @return void
*/
public function sendmailTest($objectID, $actionID)
{
$object = $this->objectModel->sendmail($objectID, $actionID);
if(dao::isError()) return dao::getError();
return $object;
}
/**
* Get subject.
*
* @param int $objectType
* @param int $object
* @param int $title
* @param int $actionType
* @access public
* @return void
*/
public function getSubjectTest($objectType, $object, $title, $actionType)
{
$object = $this->tester->loadModel($objectType)->getByID($object);
$object = $this->objectModel->getSubject($objectType, $object, $title, $actionType);
if(dao::isError()) return dao::getError();
return $object;
}
}
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->addQueue();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = $mail->addQueueTest('','');
$result2 = $mail->addQueueTest('user3', '测试提交队列', '测试发信内容');
$result3 = $mail->addQueueTest('user3,admin', '测试提交队列', '测试发信内容');
$result4 = $mail->addQueueTest('user3,admin', '测试提交队列', '测试发信内容', '', true);
r($result1) && p() && e('没有数据提交'); //提交数据为空时
r($result2) && p('subject') && e('测试提交队列'); //获取添加的邮件主题
r($result3) && p('toList') && e('user3'); //获取收件人列表不包含自己
r($result4) && p('toList') && e('user3,admin'); //获取收件人列表包含自己
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->autoDetect();
cid=1
pid=1
*/
$mail = new mailTest();
$data = array('test@qq.com', 'test@163.com', 'test@sohu.com', 'test@vip.sohu.com', 'testm');
r($mail->autoDetectTest($data[0])) && p('host') && e('smtp.qq.com'); //检测qq邮箱信息
r($mail->autoDetectTest($data[1])) && p('host') && e('smtp.163.com'); //检测163邮箱信息
r($mail->autoDetectTest($data[2])) && p('host') && e('smtp.sohu.com'); //检测搜狐邮箱信息
r($mail->autoDetectTest($data[3])) && p('host') && e('smtp.vip.sohu.com'); //检测搜狐vip邮箱信息
r($mail->autoDetectTest($data[4])) && p() && e('没有检测到相关信息'); //检测不存在的邮箱服务商信息
@@ -0,0 +1,25 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getConfigByDetectingSMTP();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = $mail->getConfigByDetectingSMTPTest('qq.com','122@qq.com',465);
$result2 = $mail->getConfigByDetectingSMTPTest('qq.com','122@qq.com',465);
$result3 = $mail->getConfigByDetectingSMTPTest('qq.com','122@qq.com',22);
$result4 = $mail->getConfigByDetectingSMTPTest('testqq.com','122@qq.com',22);
r($result1) && p('host') && e('smtp.qq.com'); //根据域名获取smtp
r($result2) && p('secure') && e('ssl'); //根据域名获取secure
r($result3) && p('secure') && e('0'); //当端口号不为465时获取secure
r($result4) && p() && e('0'); //当域名不存在时
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getConfigByMXRR();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = $mail->getConfigByMXRRTest('qq.com','test');
$result2 = $mail->getConfigByMXRRTest('sohu.com','test');
r($result1) && p('host') && e('smtp.qq.com'); //获取qq相关信息
r($result2) && p('host') && e('smtp.sohu.com'); //获取sohu相关信息
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getConfigFromProvider();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = $mail->getConfigFromProviderTest('qq.com','123');
$result2 = $mail->getConfigFromProviderTest('sohu.com','123');
r($result1) && p('host') && e('smtp.qq.com'); //获取qq相关信息
r($result2) && p('host') && e('smtp.sohu.com'); //获取sohu相关信息
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getQueue();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = count($mail->getQueueTest());
$result2 = count($mail->getQueueTest('fail'));
$result3 = count($mail->getQueueTest('wait'));
$result4 = $mail->getQueueTest('wait');
r($result1) && p() && e('7'); //按照收件人分组获取邮件列表个数
r($result2) && p() && e('7'); //按照收件人分组获取发送失败的邮件数量
r($result3) && p() && e('7'); //按照收件人分组获取待发送的邮件数量
r($result4) && p('0:data') && e('测试发信内容'); //按照收件人分组获取第一条待发送的邮件内容
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getQueueById();
cid=1
pid=1
*/
$mail = new mailTest();
$queueID = array(1,10,0);
r($mail->getQueueByIdTest($queueID[0])) && p('subject') && e('主题1'); //获取id为1的邮件主题
r($mail->getQueueByIdTest($queueID[1])) && p('toList') && e('top10'); //获取id为10的收件人
r($mail->getQueueByIdTest($queueID[2])) && p() && e('0'); //获取id不存在的邮件信息
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->getSubject();
cid=1
pid=1
*/
$mail = new mailTest();
$result1 = $mail->getSubjectTest('testtask', 1, '123', 'closed');
$result2 = $mail->getSubjectTest('doc', 1, 'test', 'created');
$result3 = $mail->getSubjectTest('story', 1, 'test', 'created');
$result4 = $mail->getSubjectTest('task', 1, 'test', 'created');
$result5 = $mail->getSubjectTest('bug', 1, 'test', 'created');
r($result1) && p() && e('admin关闭了测试单 #1:测试单1'); //获取关闭测试单时邮件主题
r($result2) && p() && e('admin创建了文档 #1:文档标题901'); //获取创建文档时的邮件主题
r($result3) && p() && e('STORY #1 test - 正常产品1'); //获取操作需求时的邮件主题
r($result4) && p() && e('TASK #1 test - 迭代1'); //获取操作任务时的邮件主题
r($result5) && p() && e('BUG #1 test - 正常产品1'); //获取操作BUG时的邮件主题
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->isError();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->isErrorTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->mailExist();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->mailExistTest()) && p('email') && e('1000010000@qq.com'); //检查系统是否至少存在邮件
+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->mergeMails();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->mergeMailsTest('admin')) && p('id') && e('6,1'); //获取邮件合并后的id
r($mail->mergeMailsTest('admin')) && p('subject') && e('主题6|主题1'); //获取邮件合并后的主题
+41
View File
@@ -0,0 +1,41 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->send();
cid=1
pid=1
*/
$mail = new mailTest();
/* If you don't set SMTP Please input you SMTP setting. */
$mailConfig = new stdclass();
$mailConfig->smtp = new stdclass();
$mailConfig->turnon = 1;
$mailConfig->mta = 'smtp';
$mailConfig->async = 0;
$mailConfig->fromAddress = '';
$mailConfig->fromName = '';
$mailConfig->domain = '';
$mailConfig->smtp->host = '';
$mailConfig->smtp->port = '';
$mailConfig->smtp->auth = '1';
$mailConfig->smtp->username = '';
$mailConfig->smtp->password = '';
$mailConfig->smtp->secure = '';
$mailConfig->smtp->debug = 1;
$mailConfig->smtp->charset = 'utf-8';
global $tester;
if(!isset($tester->config->mail->turnon)) $tester->loadModel('setting')->setItems('system.mail', $mailConfig);
$result1 = $mail->sendTest('admin','test','test','',true);
r($result1) && p() && e('0');
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->sendmail();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->sendmailTest(48,48)) && p() && e('0'); //测试为dev4用户发送邮件通知
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setCC();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setBodyTest('test body')) && p('Body') && e('test body'); //测试设置内容
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setCC();
cid=1
pid=1
*/
$mail = new mailTest();
$mail->setMTATest();
a($mail->setSubjectTest('123123'));
a($mail->setMTATest());
die;
r($mail->setCCTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setErrorLang();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setErrorLangTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setGMail();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setGMailTest()) && p() && e();
+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setCC();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setMTATest()) && p('Host') && e('localhost'); //获取MTA主机
r($mail->setMTATest()) && p('SMTPDebug') && e('0'); //获取MTAdebug设置
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setSendMail();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setSendMailTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setSMTP();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setSMTPTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setCC();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setSubjectTest('test subject')) && p('Subject') && e('test subject'); //测试设置主题
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/mail.class.php';
su('admin');
/**
title=测试 mailModel->setTO();
cid=1
pid=1
*/
$mail = new mailTest();
r($mail->setTOTest()) && p() && e();