买到人家种的蒲瓜
我买了只“蒲哩”,三吊钱。卖菜的阿姨说,别嫌它皮不好看,却是没射过农药的,人家种的,要拿着梯子才摘到的。我挺高兴的,以为买到靓货。拿回家,放到砧板对半切开“蒲哩”。只见面边如黄稀泥一般,还蠕动着白色的小虫子,坏了。“蒲哩”冇了,这个钟点出去再买菜来煮我又嫌麻烦,只好将就着,“套豉油”送饭了。
我买了只“蒲哩”,三吊钱。卖菜的阿姨说,别嫌它皮不好看,却是没射过农药的,人家种的,要拿着梯子才摘到的。我挺高兴的,以为买到靓货。拿回家,放到砧板对半切开“蒲哩”。只见面边如黄稀泥一般,还蠕动着白色的小虫子,坏了。“蒲哩”冇了,这个钟点出去再买菜来煮我又嫌麻烦,只好将就着,“套豉油”送饭了。
前些天,在果园市场路边摊买了几斤蕃薯,蕃薯有黑色泥附着,卖蕃薯的阿姨说是田地种的。一天,我拿个鸡蛋,正要往碗里打,发现鸡蛋壳附着的一个东西。凑近一看,是只会动的虫。它象蚂蚁,但个头要大得多,尖头,尾部隆起且有荧光。抱着不杀生的心态,我将这蚊虫用筷子挑起,往阳台上吹,由得它走到哪里去了。
再过了几天,我拿条蕃薯准备洗净煲粥。放到水龙头下时,吓我一跳,因为这条蕃薯不仅表皮坑洼,还有好些个小洞,有的洞口附近就趴着与上次一样的蚁虫。有的蚁虫还舞动着触角,有点恶心。想来,这些蚊虫是害虫,吃蕃薯的。我怒了,将蚊虫扫到胶袋中,准备闷死它们。然后,拿刀切蕃薯。一剖开,果然蕃薯里边惨不忍睹:颜色变黑,布满弯弯曲曲被蛀过的小道,有臭味,还有被刀直接切成两段的蚊虫。
今天,我无意中看到房间墙上有只东西,细看后发现是蚁象,又是它。我以为上次的蕃薯吃完后就将它们清理掉了,想不到它从厨房找到我睡的房间里来了。这次,我拍了照,到网上搜索,原来这叫“甘薯蚁象”,是害虫,如可能会减少蕃薯30%产量。
参考:https://www.zgbk.com/ecph/words?SiteID=1&ID=123204&SubID=110431
需求:通过URL,提交邮箱的用户名和密码,获取到邮件内容。通过关键字搜索邮件。
尝试:用 php-imap-reader 试试。
<?php
date_default_timezone_set('Asia/Shanghai');
require 'src/phpImapReader/Email.php';
require 'src/phpImapReader/EmailAttachment.php';
require 'src/phpImapReader/Reader.php';
use benhall14\phpImapReader\Email;
use benhall14\phpImapReader\EmailAttachment;
use benhall14\phpImapReader\Reader;
// define('IMAP_USERNAME', 'postmaster@lan.anqun.org');
// define('IMAP_PASSWORD', 'mima');
define('IMAP_MAILBOX', '{127.0.0.1:993/imap/ssl/novalidate-cert}'); // For example: {outlook.office365.com:993/imap/ssl/novalidate-cert}
define('ATTACHMENT_PATH', __DIR__ . '/attachments/');
define('IMAP_USERNAME', $_REQUEST['n']);
define('IMAP_PASSWORD', $_REQUEST['p']);
// echo $_REQUEST['n'];
// echo $_REQUEST['p'];
// echo $_SERVER["QUERY_STRING"];
try {
$imap = new Reader(IMAP_MAILBOX, IMAP_USERNAME, IMAP_PASSWORD, ATTACHMENT_PATH);
$imap->limit(2)->get();
foreach ($imap->emails() as $email) {
echo '<div>';
echo '<div>' . $email->fromEmail() . '</div>';
echo '<div>' . $email->subject() . '</div>';
echo '<div>' . $email->date('Y-m-d H:i:s') . '</div>';
if ($email->hasAttachments()) {
foreach ($email->attachments() as $attachment) {
echo '<div>' . $attachment->filePath() . '</div>';
}
}
#print_r($email->plain());
#print_r($email->html());
#$plainText = $email->plain();
#$extractedText = substr($plainText, 0, 100); // 提取前100个字符
#echo $extractedText;
// 假设 $email 是一个包含邮件信息的对象
$plainText = $email->plain(); // 获取 plain 属性内容
// 使用正则表达式来匹配并提取所需文本内容
// $pattern = '/Password: \w{8}/'; // 用你的实际匹配模式替换 YourPatternHere
$pattern = '/\b\d{6}\b/'; // 用你的实际匹配模式替换 YourPatternHere
if (preg_match($pattern, $plainText, $matches)) {
$extractedText = $matches[0]; // 提取匹配到的文本内容
echo "Extracted text: " . $extractedText;
} else {
echo "Pattern not found in plain text.";
}
echo '</div><br/><br/><hr />';
}
} catch (Exception $e) {
die($e->getMessage());
}
或者:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>My Web Page</title>
</head>
<body>
<?php
date_default_timezone_set('Asia/Shanghai');
require 'src/phpImapReader/Email.php';
require 'src/phpImapReader/EmailAttachment.php';
require 'src/phpImapReader/Reader.php';
use benhall14\phpImapReader\Email;
use benhall14\phpImapReader\EmailAttachment;
use benhall14\phpImapReader\Reader;
// define('IMAP_USERNAME', 'postmaster@lan.anqun.org');
// define('IMAP_PASSWORD', 'mima888');
define('IMAP_MAILBOX', '{localhost/imap/ssl/novalidate-cert}'); // For example: {outlook.office365.com:993/imap/ssl/novalidate-cert}
define('ATTACHMENT_PATH', __DIR__ . '/attachments/');
define('IMAP_USERNAME', $_REQUEST['n']);
define('IMAP_PASSWORD', $_REQUEST['p']);
// echo $_REQUEST['n'];
// echo $_REQUEST['p'];
// echo $_SERVER["QUERY_STRING"];
echo "默认显示未读邮件列表及其内容。如果列表为空,可能是没有收到新邮件。";
try {
$mark_as_read = true;
$imap = new Reader(IMAP_MAILBOX, IMAP_USERNAME, IMAP_PASSWORD, ATTACHMENT_PATH);
$imap->limit(2)->get();
// $imap->unseen()->get();
foreach ($imap->emails() as $email) {
echo '<div>';
echo '<div>' . $email->fromEmail() . '</div>';
// echo '<div>' . $email->to() . '</div>';
$emailsString = implode(', ', array_column($email->to(), 'email'));
echo $emailsString;
echo '<div>' . $email->subject() . '</div>';
echo '<div>' . $email->date('Y-m-d H:i:s') . '</div>';
if ($email->hasAttachments()) {
foreach ($email->attachments() as $attachment) {
echo '<div>' . $attachment->filePath() . '</div>';
}
}
print_r($email->plain());
#print_r($email->html());
#$plainText = $email->plain();
#$extractedText = substr($plainText, 0, 100); // 提取前100个字符
#echo $extractedText;
echo '</div><br/><br/><hr />';
}
} catch (Exception $e) {
die($e->getMessage());
}
?>
</body>
</html>
<?php
header('Content-Type: application/json; charset=UTF-8');
date_default_timezone_set('Asia/Shanghai');
require 'src/phpImapReader/Email.php';
require 'src/phpImapReader/EmailAttachment.php';
require 'src/phpImapReader/Reader.php';
use benhall14\phpImapReader\Email;
use benhall14\phpImapReader\EmailAttachment;
use benhall14\phpImapReader\Reader;
define('IMAP_MAILBOX', '{mail.iredmail.demo.anqun.org/imap/ssl/novalidate-cert}'); // For example: {outlook.office365.com:993/imap/ssl/novalidate-cert}
define('ATTACHMENT_PATH', DIR . '/attachments/');
define('IMAP_USERNAME', $_REQUEST['n']);
define('IMAP_PASSWORD', $_REQUEST['p']);
// echo $_REQUEST['n'];
// echo $_REQUEST['p'];
// echo $_SERVER["QUERY_STRING"];
try {
$mark_as_read = true;
$imap = new Reader(IMAP_MAILBOX, IMAP_USERNAME, IMAP_PASSWORD, ATTACHMENT_PATH);
$imap->limit(5)->get();
// $imap->unseen()->get();
// 创建一个空数组来存储所有邮件的信息
$emailsData = [];
foreach ($imap->emails() as $email) {
// 为当前邮件创建一个关联数组
$emailData = [
'from' => $email->fromEmail(),
'to' => $email->to(),
'subject' => $email->subject(),
'date' => $email->date('Y-m-d H:i:s'),
// 'plainText' => $email->plain(),
'verificationCode' => null // 初始化验证码为 null
];
// 使用正则表达式搜索6位的数字或字母组成的序列
$plainText = $email->plain();
preg_match('/[A-Za-z0-9]{6}/', $plainText, $matches);
// 将当前邮件的信息添加到 $emailsData 数组中
$emailsData[] = $emailData;
}
// 使用 json_encode() 将整个数组转换为 JSON 格式的字符串
$jsonData = json_encode($emailsData, JSON_PRETTY_PRINT);
// 输出 JSON 数据
echo $jsonData;
} catch (Exception $e) {
die($e->getMessage());
}
?>
需求:随机创建100个邮箱用户和密码。
尝试:可使用 /dev/urandom 生成随机字符的用户名和密码(八位),然后通过 create_mail_user_SQL.sh 生成SQL语句,最后导入到数据库。
#!/bin/bash
#For Loop to Read Three-expression
rm -rf /tmp/iredmail-users.txt
rm -rf /tmp/iredmail-users.sql
for ((i=1; i<=100; i++))
do
USER=$(strings /dev/urandom |tr -dc a-z0-9 | head -c8)
PWD=$(strings /dev/urandom |tr -dc a-z0-9 | head -c8)
DOMAIN="lan.anqun.org"
echo $USER@$DOMAIN $PWD >> /tmp/iredmail-users.txt
bash create_mail_user_SQL.sh $USER@$DOMAIN $PWD >> /tmp/iredmail-users.sql
done
参考:
https://docs.iredmail.org/sql.create.mail.user.html
https://www.runoob.com/linux/linux-shell-process-control.html
现象:用户将iRedMail升级到Pro版本后,在邮局管理后台面板里,“活动” --> “接收到的邮件”页面中,列表是空的。但“发送的邮件”页面却有。
尝试:检查postfix的配置文件main.cf,是否注释了 content_filter = smtp-amavis:[127.0.0.1]:10024 这一行。
感谢张老板指导。