Galaxy 生信平台(四):邮件与管理员配置
前几天看到中山大学和国家基因库合作开发的 Translatome Workbench 翻译组学可视化在线数据分析平台 (db.cngb.org/galaxy/) 的推送信息,也上去看了一下,工具和教程都做的非常用心,这也算是国内为数不多的 Galaxy 研究中的一抹亮色了。
本文章作为 Galaxy 生信平台的第四篇,继续来带大家学习了解一下这个开源平台,希望大家有所收获。
我在《QQ 邮箱设置自定义域名邮箱》中给大家展示了,如何通过自己申请的域名+ QQ 邮箱打造一个高端大气的个人专业邮箱。今天来了一下如何把自定义的 QQ 域名邮箱应用到 Galaxy 生信分析平台中。
1. Galaxy 邮箱与管理员
Galaxy Project 是一个基于云计算背景下的开源生物信息分析项目,而 Galaxy 平台则是这个项目的集大成者。作为一个用于生产环境中,可以满足多用户使用的在线平台,Galaxy 的邮箱服务可谓是至关重要,尤其对于普通用户常见的登录限制、注册激活、密码重置与修改找回、页面错误报告等琐碎问题的处理上,它可以大大减轻系统管理员的工作量。
Galaxy 收发邮件的核心代码主要位于以下两个程序,其核心模块则是 util.send_mail,一个基于 email 和 smtplib 库进行封装的函数,具体源码,感兴趣的可以去研究一下。
lib/galaxy/util/init.pylib/galaxy/managers/users.pylib/galaxy/webapps/galaxy/controllers/user.py
所以,在设置 Galaxy 邮箱服务前,我们先来了解一下如何在 Python 中基于 email 和 smtplib 库进行 QQ 邮件的发送。
2. 基于 Python 的邮件收发
首先我们要知道用 python 代理登录 qq 邮箱发邮件,是需要更改自己 qq 邮箱设置的。在这里大家需要做两件事情:邮箱开启 SMTP 功能 、获得授权码,步骤如下。
首先,在打开的 QQ 邮箱中,进入"设置"。

第二,在邮箱设置界面,打开
“帐户”。

第三,往下找到 POP3/IMAP/… 服务,点击 POP3/SMTP 所在行,右侧的
“开启”。

如果是第一次开启 POP3/SMTP 这时系统会要求通过密保手机发送一条特别内容的短信,待手机上短信发送完成后,点击
“我已发送”。

这样就可以得到 POP3/SMTP 服务的授权码了。

回到上页,可以看到 POP3/SMTP 服务已经处于开启状态。同样的,如果忘记了授权码,可以点击温馨提示中"生成授权码"的链接重新再次生成。

SMTP 服务和授权码都有了,接下来我们要基于 python3 的
email和
smtplib 库实现一个简单的发邮件功能。
from email.mime.text import MIMEText
from email.header import Header
from smtplib import SMTP_SSL
#qq 邮箱 smtp 服务器
host_server = 'smtp.qq.com'
#sender_login 为发件人的域名邮箱(或者 QQ 号码)
sender_login = 'shenweiyan@bioitee.com'
#pwd 为 qq 域名邮箱的授权码
pwd = 'r***h***b'
#发件人的邮箱
sender_mail = 'shenweiyan@bioitee.com'
#收件人邮箱
receiver_mail = 'ishenweiyan@gmail.com'
#邮件的正文内容
mail_content = '你好,我是沈维燕,现在在进行一项用 python 登录 qq 邮箱发邮件的测试'
#邮件标题
mail_title = '沈维燕的邮件'
#ssl登录
smtp = SMTP_SSL(host_server)
#set_debuglevel() 是用来调试的。参数值为 1 表示开启调试模式,参数值为 0 关闭调试模式
smtp.set_debuglevel(1)
smtp.ehlo(host_server)
smtp.login(sender_login, pwd)
msg = MIMEText(mail_content, "plain", 'utf-8')
msg["Subject"] = Header(mail_title, 'utf-8')
msg["From"] = sender_mail
msg["To"] = receiver_mail
smtp.sendmail(sender_mail, receiver, msg.as_string())
smtp.quit()
3. 配置 Galaxy 邮件服务
有了上一步 python 发送邮件的经验,接下来我们只需要修改一下 Galaxy 的主配置文件
config/galaxy.yml 即可:
galaxy:
smtp_server: 'smtp.qq.com'
smtp_username: 'shenweiyan@bioitee.com'
smtp_password: 'h**z***j'
smtp_ssl: true
error_email_to: 'shenweiyan@bioitee.com'
email_from: 'shenweiyan@bioitee.com'
配置完成后,重启 Galaxy 服务。
4. 管理员与强制登录
如果你只想把你个人部署的 Galaxy 提供给特定的人使用,例如同一个实验室的其他小伙伴,你可以把 Galaxy 的注册功能关闭,并设置只能通过管理员创建新账号。
galaxy:
# 设置 Galaxy 管理员账号,如有多个管理员,请用逗号分隔
admin_users: 'shenweiyan@bioitee.com'
# 强制所有用户均需要注册登录才能使用
require_login: false
# 开启用户激活功能(如果设置为"false",则帐户自注册以来一直处于活动状态)
user_activation_on: true
# 设置激活有效时长(小时)
activation_grace_period: 3
# 允许未注册的用户创建新帐户(否则,必须由管理员创建)
allow_user_creation: false
# 允许管理员删除已经注册的账号
allow_user_deletion: true
# 允许管理员模拟其他用户登录,进行问题追踪
allow_user_impersonation: true

5. 一些测试
配置好了 Galaxy 邮箱服务,我们来测试一下注册激活验证和重置密码。
到这里,Galaxy 的邮件服务和管理员设置就完成了,如果想要更改 Galaxy 默认的邮件内容(例如把英文改成中文,或者增删邮件发送内容),可以仔细去研究一下它的源码,也欢迎留言或者添加作者微信交流。最后总结一句,就是,QQ 域名邮箱的本质还是 QQ 邮箱,因此,它收发邮箱的服务器设置依然是 qq.com,不管您最终选择 QQ 邮箱还是 QQ 域名邮箱,它们的配置原理都是一样。
往期精彩:

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
Galaxy 生信平台(四):邮件与管理员配置的更多相关文章
- zabbix短信(阿里云短信平台)与邮件报警
环境说明 操作系统 centos7 zabbix_server zabbix 4.0.3 python 3.6.5 短信平台 阿里云短信 zabbix_server配置信息 1 [root@cp-hb ...
- 生信基础知识【04】GO和pathway分析
非原创 参考资料: 一文掌握GO和pathway分析 - 生物信息学讨论版 -丁香园论坛http://www.dxy.cn/bbs/thread/34904124#34904124 GO富集 GO是G ...
- 生信软件的好帮手-bioconda--转载
http://mp.weixin.qq.com/s/nK1Kkf9lfZStoX25Y7SzHQ 这篇文章主要适用于Linux平台,当然MacOS也行,不过它有更好安装方法. 此外网上也会许多更好的关 ...
- 精心整理(含图版)|你要的全拿走!(R数据分析,可视化,生信实战)
本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/ZEjaxDifNATeV8fO4krOIQ更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号. 为 ...
- java中用中国网建提供的SMS短信平台发送短信
接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下.大体上说的都是有三种方法,分别是sina提供的webservice接口.短信mao和中国网建提供的SMS短信平台. 这三种方 ...
- IOS,发短信,发邮件,打电话
今天把APP里常用小功能 例如发短信.发邮件.打电话.全部拿出来简单说说它们的实现思路. 1.发短信实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点.1.1.发短信(1)——URL // ...
- 国都企信通短信平台发送手机短信的python脚本一例
一年前,由于工作需要,给以色列的同事解释一下国都短信平台的短信发送格式,本来不懂python的我硬着头皮写了一个sample,比较粗,能用,但不优美,希望以后学会python能改得像我同事写的那么优雅 ...
- C#调用短信接口(通过简单的工厂模式整合多个短信平台)
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...
- 生信工具汇总--OMICtools
各种生信工具: https://omictools.com/
- 4、下行短信发送WebService、下行短信发送服务 -功能详细设计 --短信平台
3. 下行短信发送WebService 开发一个WebService,供第三方系统调用,用于发送短信.WebService接收数据后,将信息存储入数据库的短信发送数据表中. WebService参数 ...
随机推荐
- MapReduce Shuffle源码解读
MapReduce Shuffle源码解读 相信很多小伙伴都背过shuffle的八股文,但一直不是很理解shuffle的过程,这次我通过源码来解读下shuffle过程,加深对shuffle的理解,但是 ...
- 多线程基础之CAS、AQS、ABA辨析
这三个单词算是多线程面试常见的问题了,也是很多小白不太懂的问题,这里给出我的理解来. 一.CAS J.U.C 并发包中的很多类都涉及到了 CAS,可以说没有 CAS 和 volatile 就没有 J. ...
- 【过滤器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
简介 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern),是一种结构型模式.这种模式允许使用不同的标准条件来过滤一组对象,并通过逻辑运算的方式把各条件连接起来,它 ...
- Containerd 入门基础操作
Containerd 被 Docker.Kubernetes CRI 和其他一些项目使用 Containerd 旨在轻松嵌入到更大的系统中.Docker 在后台使用 containerd来运行容器. ...
- pnpm 之降本增效
作者:京东科技 于振京 受众简介 前端研发工程师 还在为npm i安装大量依赖等待时间较长,npm扁平化node_modules依赖版本冲突在苦恼吗,不用苦恼pnpm为你保驾护航 主要影响:安装依赖包 ...
- 逍遥自在学C语言 | 位运算符^的高级用法
前言 在上一篇文章中,我们介绍了|运算符的高级用法,本篇文章,我们将介绍^ 运算符的一些高级用法. 一.人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 -- 自在. 第二位上场的是和我们一 ...
- 【Zookeeper】(三)部署与使用、服务器节点动态上下线案例分析
目录 Zookeeper部署与使用 1 分布式安装部署 配置服务器编号 增加zoo.cfg集群配置参数 2 启动集群服务器 3 启动集群客户端和命令 4 ️API的使用 引入依赖 创建客户端 创建节点 ...
- Deep-DRM算法理解
title: GCN学习笔记 categories: - 生物信息学 date: 2023-03.13 hidden: true mathjax: true GCN GCN(Graph Convolu ...
- ELF文件格式解析
ELF(Executable and Linkable Format) 即可执行可链接文件格式,是目前操作系统上最常见的可执行文件格式.不同系统的目标文件不一样,Windows是PE(Portable ...
- Abp框架Web站点的安全性提升
本文将从GB/T 28448-2019<信息安全技术 网络安全等级保护测评要求>规定的安全计算环境中解读.摘要若干安全要求,结合Abp框架,对站点进行安全升级. [身份鉴别]应对登录的用户 ...