[经验] 【NanoPi NEO试用体验】-7-收发邮件篇

[复制链接]

技术员

发表于 2016-12-15 13:59:04   602 查看 2 回复 显示全部楼层 倒序浏览
分享
本帖最后由 JMU2012 于 2016-12-15 14:27 编辑

0、前言
上一期,做的是关于光电传感器和摄像头的配合。那么拍摄完照片后,需要及时发给管理员。那么就想到可以使用邮件服务。那么,这一期,承上启下,把上次拍的照片发出去。

1、功能简介
当满足某个触发条件时,打包某个文件内的文件,发送到指定邮箱,通知管理员。

2、方案
在Pi上安装一个轻量级的邮件传输代理程序(ssmtp)和客户端(mutt),就能轻松使用Email。

3、安装邮件传输代理程序SSMTP
提示没有这个软件,于是想到应该添加一个软件源。
依次进行下面操作:
$ sudo vim /etc/apt/source.list
取消以下两行注释:
7-1.png
更新软件源:
$ sudo apt-get update
再次安装,成功:

4、配置ssmtp
安装后进行配置,这里提醒一下,要使用smtp服务,需要在邮箱中开通指定服务,这里以163邮箱为例:
7-3.png
$ sudo vim /etc/ssmtp/ssmtp.conf
  1. #
  2. # Config file for sSMTP sendmail
  3. #
  4. # The person who gets all mail for userids < 1000
  5. # Make this empty to disable rewriting.
  6. root=xxx@163.com

  7. # The place where the mail goes. The actual machine name is required no
  8. # MX records are consulted. Commonly mailhosts are named mail.domain.com
  9. mailhub=smtp.163.com:25

  10. AuthUser=xxx@163.com
  11. AuthPass=xxx
  12. #AuthMethod=LOGIN

  13. # Where will the mail seem to come from?
  14. rewriteDomain=163.com

  15. UseTLS=NO
  16. UseSTARTTLS=NO
  17. # The full hostname
  18. hostname=FriendlyARM

  19. # Are users allowed to set their own From: address?
  20. # YES - Allow the user to specify their own From: address
  21. # NO - Use the system generated From: address
  22. FromLineOverride=YES
复制代码


5、安装客户端mutt:

$ sudo apt-get install mutt
安装后进行配置:
还需要配置:
$ vim ~/.muttrc
  1. set sendmail=/usr/sbin/ssmtp
  2. set use_from=yes
  3. set realname="Kelvin"
  4. set from="xxx@163.com"
  5. set envelope_from="yes"
复制代码
测试一下:
$ echo "Hello" | sudo mutt -s "Test"[对方的邮箱]
看一下对方的收件箱是否有邮件。


还可以发送附件,命令格式为:
echo <mail content> | mutt -s <subject> -a <filename> -- <recipient>

ps:只有mail用户组的成员才能使用mutt,将pi用户加入mail用户组:
$ gpasswd -a fa mail

也可以使用mutt客户端进行发送邮件,感觉很方便。
$ sudo mutt
7-2.png

6、编写发邮件的shell脚本
在这个脚本里可以配置需要发送的附件,如拍摄的照片或者一些其他文件,还可以指定邮箱。
  1. #!bin/bash
  2. echo "Hello" | sudo mutt -s "TestHello"  -a /home/fa/folder_to_mail/log.txt  -- xxx@qq.com
复制代码


7、在C语言中调用shell脚本发送邮件

在这个程序中调用之前写好的shell脚本。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.    system("sh /home/fa/code/mail_demo/SendMail.sh");
  6.    printf("Email has been sent!\n");
  7.    return 0;
  8. }
复制代码
8、小结
这一期完成了邮箱的配置和使用邮箱服务,下一期,就是项目结题篇。将所有之前的准备工作一起综合一下。完成项目实践。


标签:邮件

技术员

发表于 2016-12-15 14:01:35    楼主|
本帖最后由 JMU2012 于 2016-12-15 14:29 编辑

插入代码的格式怎么不对了,表示好忧伤~现在好啦~
回复

点赞

版主

发表于 2016-12-15 17:00:06  

PCB在线计价下单

板子大小:

cm
X
cm

层数:

2

板子数量:

10

厚度:

1.6
不错,继续分享学习经验哦
回复

点赞

高级模式
您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

我的提问

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

DFRobot专区

树莓派论坛

智能硬件论坛

开发快智能硬件开发平台

Intel物联网开发者专区

Waveshare

乐美客SBC专区

Arduino论坛

BeagleBone论坛

机器人论坛

创客神器NanoPi

小钢炮CANNON

比派科技banana pi专区

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

个人版区

阿东Verilog技术专版

直流马达驱动电路设计

LabVIEW英雄联盟

特权同学FPGA专区

-

厂商专区

灵动微电子 MM32

盈鹏飞嵌入式

TI论坛

TI Deyisupport社区

芯灵思嵌入式论坛

Tisan

米尔科技

庆科社区

WIZnet技术专区

Cypress技术论坛

飞凌嵌入式

Qualcomm技术论坛

英创嵌入式

机智云GoKit论坛

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区