- 浏览: 74354 次
- 性别:
- 来自: Singapore
文章分类
最新评论
-
guang6184:
dsfdsfsdfdfsd
<真希望我20几岁就知道的事>读书笔记 - 上 -
flyfy1:
flyfy1 写道liuyu1989314 写道请问你的《非常 ...
我需要有多努力? -
zsg88:
...
Project要一起做才好 -
flyfy1:
chenjian1567 写道我怀念每天跑步的日子。。我也是。 ...
身体要紧 -
chenjian1567:
我怀念每天跑步的日子。。
身体要紧
我在做CS1010(Programming Methodology)的Tutor,其中一个任务是给学生作业判分,然后把判分的结果发给学生。
学生作业在我电脑里面folder的结构是:题号->学生学号->题目;其中题目为C code,有时候有其它的Tutor用Word判分之后会把结果发给我。
为了保护学生隐私,我需要分别给每个学生发送他的成绩,附上他的批改过的作业作为附件。于是,我可以用电脑来做这个重复而且麻烦的事情。
这里用的是PHP,以及它的Pear组件中的Pear_mail (用来发送email),和pear_mime(用来给email加入附件)。学生的email就是学生学号@学校网址。
code见下(这里居然不能用PHP后缀作为附件!应该是因为怕上传上去自动执行PHP吧~)。我觉得这是一次很好的Programming Practice——把一些编程技巧拿来解决实际问题。
<?php // basic email settings require_once "Mail.php"; require_once "Mail/mime.php"; $params = array( 'host' => "ssl://smtp.gmail.com", 'port' => "465", 'auth' => true, 'username' => "something@gmail.com", // CONFIG your username comes here 'password' => "Your Password", // CONFIG and your password ); $from = "something@gmail.com"; // CONFIG your email address $cc = "something@gmail.com"; // CONFIG the cc address -- put your address so that you can confirm that the email has been sent successfully $subject = "[CS1010] PE Mark"; $body = // CONFIG: the message you want to pass to your student, it's in the HTML format "<p>Please Check the attachment(the word file) for your PE1 Mark. I didn't mark your PE but the graders are following the same scheme. If you have any problem with it, please email me.</p></br><p>Regards, </p> <p>Your Name</p>"; // Generate the location array $markLoc = "../PE_DG4"; // CONFIG: the file location of the folder storing ex1, ex2, ... $regEx = "/^ex\\d$/"; $regMatrix = "/^[au]\\d+$/"; $regWord = "/\\.docx$/"; $regCProg = "/\\.c$/"; // location str: $loc = array(); $fileNameArr = array($markLoc); foreach(scandir($markLoc) as $exName){ if(!preg_match($regEx,$exName)) continue; array_push($fileNameArr,$exName); foreach(scandir(implode("/",$fileNameArr)) as $matrixNum){ if(!preg_match($regMatrix,$matrixNum)) continue; if(!array_key_exists($matrixNum,$loc)) $loc[$matrixNum] = array(); array_push($fileNameArr,$matrixNum); foreach(scandir(implode("/",$fileNameArr)) as $file){ if(preg_match($regWord,$file)){ array_push($fileNameArr,$file); $loc[$matrixNum][] = implode("/",$fileNameArr); array_pop($fileNameArr); } else if(preg_match($regCProg,$file)){ array_push($fileNameArr,$file); $loc[$matrixNum][] = implode("/",$fileNameArr); array_pop($fileNameArr); } } array_pop($fileNameArr); } array_pop($fileNameArr); } // then send out emails to each specific student foreach($loc as $matrix => $files){ $message = new Mail_mime(); $message->setHTMLBody($body); // add in attachment here foreach($files as $file){ $message->addAttachment($file); } $to = $matrix."@nus.edu.sg"; $headers = array( 'From' => $from, 'Reply-to' => $from, 'To' => $to, 'Cc' => $cc, 'Subject' => $subject, ); $msgContent = $message->get(); $msgHeader = $message->headers($headers); $smtp = Mail::factory('smtp',$params); $mail = $smtp->send($to.",".$cc,$msgHeader,$msgContent); if(PEAR::isError($mail)){ echo "Error: ".$mail->getMessage()."\n"; } else{ echo "Message Sent Successfully to: $to\n"; } } ?>
发表评论
-
正式学期结束周的一些Project
2012-04-14 23:23 1594明天是周日,标志着这 ... -
技术文和总结文
2012-04-10 00:07 810发现我自己技术文写得很少,总结性质的东西写得很多。原因几个。 ... -
The building of an army
2012-04-07 23:07 729这次来讨论下Leadership, ... -
Project要一起做才好
2012-04-05 22:21 1781// 以前的习惯 我以前做什么都喜欢一个人,因为感觉独立思考 ... -
程序员应该有一些自己拿得出手的Project
2012-04-04 00:55 2566// 两次面试经历 这两天有两个面试。一个是申请了Shear ... -
拿了50块钱的小孩的故事
2012-04-03 02:47 1618突然有一天,一个小孩出发了。他妈妈告诉他:以后你会遇到一个老巫 ... -
发条狗
2012-04-01 21:29 946有一只玩具 发条 狗,他有个伟大的理想:想从A走到B,经过C, ... -
暑假做什么 -- GSoC, Internship, Rag
2012-04-01 03:42 948这几天为今年暑假到底要做什么纠结了。这是几个选项: G ... -
当你忧伤了,你要做神马
2012-03-31 00:37 757我觉得仿佛周期性的一样,我会经常性的跑去Emo一下。 ... -
Random Rubbish
2012-03-29 21:31 807// 突然之间的投入精力做一件事 这几天在忙着申 ... -
低姿态的高效率
2012-03-29 02:54 1149// 这几天博客访问量 ... -
死要死的明白
2012-03-28 00:25 1880// 悲催的CS3233 我这 ... -
身边的一些牛人同学
2012-03-27 02:08 5004我在上大学以前一直 ... -
“麻烦事”的滚雪球效应
2012-03-26 00:28 1580我想大家都会有这样的经验:有那么一件必须要完 ... -
我用iPad / iTouch来做什么
2012-03-22 01:49 4002买了iPad,然后发现了一 ... -
三分钟热度
2012-03-21 02:53 1571// iPad3到货 很久以前订 ... -
一个Todo List软件该有的功能
2012-03-20 06:52 1666最近在研究一个Open Sourc ... -
关于高效率
2012-03-19 02:12 1341关于高效率 // 晚上的工作效果 起因是自己这 ... -
Balance II
2012-03-18 02:11 858今天继续写Balance的主题。 // 东西在缺少的时 ... -
Balance
2012-03-17 07:28 794// 依然是最近的生活 最近的生活有点乱了。作息时间非常不规 ...
相关推荐
本篇将详细介绍如何使用VB6编写程序来实现无控件发送带附件的邮件。 首先,我们需要了解SMTP(Simple Mail Transfer Protocol),它是互联网上用于发送电子邮件的标准协议。VB6本身并不直接支持SMTP,所以我们需要...
有时发带附件的邮件不想引用邮件类库,使用PHP mail()函数发送有附件的邮件
本文将深入探讨如何使用Qt进行邮件发送,特别是关于附件的实现,这对于开发者来说是重要的知识点。 首先,让我们了解一下Qt库。Qt是一个跨平台的C++图形用户界面应用程序开发框架,广泛应用于桌面和移动设备应用...
发上来是来求助的:在sun和nokia的模拟器上能正常发邮件,但是到了手机上就显示不能解析主机名(could not resolve...在电脑上可以发带附件的邮件。发图片啦文本啦肯定是木有问题的~自带简单的联系人列表方便填写收件人
在Python编程中,发送邮件是一项常见的任务,尤其对于自动化脚本和系统通知而言。本文将详细介绍如何使用Python发送文本邮件和带有附件的邮件,以163邮箱为例,因为当前163邮箱要求使用客户端授权码而非密码进行验证...
主要介绍了Python脚本实现自动发带图的微博的相关资料,需要的朋友可以参考下
它允许开发者通过PHP来间接访问Twitter的API,从而绕过某些限制或者进行特定的处理。由于标题提及“带图片说明”,我们可以推测此项目可能包含如何使用图像资源或展示API请求结果的示例。 【描述】:“Twip,Twitter...
在.NET框架中,发送电子邮件是一项常见的任务,尤其在企业级应用和自动化流程中。这篇文章将深入探讨如何使用C#编程语言实现.NET发送邮件功能,包括添加附件和验证附件的大小及格式。 首先,我们需要了解SMTP...
本机安装outlook后,配置上群发邮箱,下载附件执行宏即可群发邮件,操作简单。
发带图片的贴子教程1
5,我自己添加了,定时发送邮件,自动添加附件的功能,如果对你没有用可以屏蔽掉 6,特别注意发带有附件的邮件,会导致进程在发送,但提示没有成功,我自己添加了延迟,代码中也有注释,也许还有其他问题,我还没有...
本文将深入讲解如何实现一个仿微信发带图片朋友圈的UI设计。 首先,我们需要理解UI设计的基本原则。用户界面(UI)设计的目标是创建一个直观、易用且吸引人的环境,使用户能够有效地与应用程序进行交互。在设计仿...
CRC通过计算一个固定长度的校验码来检测数据传输过程中可能发生的错误。CRC算法的核心在于选择一个合适的多项式作为生成多项式,通过对原始数据进行多项式除法运算,得到的余数即为CRC校验码。 #### 二、CAPL语言...
首先,从基本数据来看,爱美客的A股总股本为216.36百万股,流通A股股本为88.58百万股,总市值和流通市值分别为948.479亿和388.3015亿。每股净资产为25.66元,资产负债率仅为4.27%,显示出较强的财务实力和较低的财务...
"每日新闻-5.7gbk发带分页的每日文章归档"这一文件名暗示了这个插件是针对织梦5.7版本的GBK编码环境开发的,支持分页显示每日的新闻条目,这对于大型网站来说尤其重要,因为它能优化用户体验,避免一次性加载过多...
机制:发帖没满一定数不能发带URL的帖子 下载附件 解压放到include目录下 如果你的这两个文件修改过了 请按下面的修改 很多人都说找不到$discuz_action=11或者12的 其实7.0只是多打了半角空格 改为了$discuz_...
13. must belong to表示“一定属于”,语气较强,根据后文她非常喜欢粉色,推测发带一定是Linda的,选A。 14. 首次见面时应握手,be supposed to do sth.表示“应该做某事”,选B。 以上题目涉及的英语知识点涵盖...