当前位置: 首页 > news >正文

湘潭网站建设 多少费用磐石网络厦门网站到首页排名

湘潭网站建设 多少费用磐石网络,厦门网站到首页排名,wordpress投稿图片大小,网页制作作业下载Python 自带 smtplib 包可以发邮件,示例见 [1,2],在邮箱设置启用 IMAP/POP3 就能用。有些邮箱需要设置授权码,如新浪、163 邮箱,然后以授权码作为 smtplib 登录服务器的密码。邮箱端配置参考 [3,4]。 现在情况是: 邮…

Python 自带 smtplib 包可以发邮件,示例见 [1,2],在邮箱设置启用 IMAP/POP3 就能用。有些邮箱需要设置授权码,如新浪、163 邮箱,然后以授权码作为 smtplib 登录服务器的密码。邮箱端配置参考 [3,4]。

现在情况是:

  • 邮箱端已配置好,手提电脑(windows,连着学校的网)用 [2] 的代码测试,发送成功。
  • 学校服务器(ubuntu 16.04),图形界面中浏览器能上网,但 ping 不通外网,用 [2] 代码也发不了邮件。
  • 手提电脑可以用 ssh 连学校服务器。

一顿搜索后,怀疑是学校给服务器网络设置了一些规则,所以这么奇怪。但想在服务器用 python 发邮件,用以提醒程序跑完。受 [5] 启发,考虑通过 ssh 隧道,让服务器将手提电脑当跳板,发邮件出去。[6] 有图解 ssh 隧道的回答,很直观。思路是:

  • 手提电脑用 ssh 隧道做远程转发跳板,指定一个学校服务器的端口,从中接收服务器发过来的邮件,并转发去真正的 SMPT 服务器的对应端口;
  • 服务器在用 smtplib 发邮件时,当自己(127.0.0.1)是 SMTP 服务器,将邮件发去那个指定端口。

这样 ssh 隧道就可以移花接木,将此邮件先转发到手提电脑,再转发去真正的 SMTP 服务器(如新浪邮箱的 smtp 服务器)。

下文分别给出服务器、手提电脑两端的代码、命令。假设指定转发新浪的端口为 2525、转发 163 的是 2526。

on laptop

手提电脑用 ssh 隧道转运学校服务器发给自己的邮件:

  • 此处是 dos 命令
  • 假设已经配好手提电脑 ssh 免密登录学校服务器
  • -R:远端转发(remote forward),可同时转发多个端口
  • -N:只开隧道,不在学校服务器打开一个 shell
@echo off
@REM tunnel-email.bat@REM 登录学校服务器的信息(免密登录)
set USER=blyu
set IP=1.2.3.4@REM 真正的 SMTP 服务器和端口
set SMTP_SINA=smtp.sina.cn
set PORT_SINA=25
set SMTP_163=smtp.163.com
set PORT_163=25@REM 与学校服务器指定的端口
set PORT1=2525
set PORT2=2526echo [%date% %time%] Tunneling E-mail from %IP% ...@REM 同时转发两个端口
ssh -R 0.0.0.0:%PORT1%:%SMTP_SINA%:%PORT_SINA% ^-R 0.0.0.0:%PORT2%:%SMTP_163%:%PORT_163% ^%USER%@%IP% -N

on server

服务器上用 python 发邮件的程序如此写:

  • 先在手提电脑开好隧道,再在服务器发邮件
# send-email.py
from email.header import Header
from email.mime.text import MIMEText
from email.utils import formataddr
import smtplibdef send_email(subject, text, to_name_list, to_addr_list,server, from_name, from_addr, password, port=0, ssl=False
):"""从 [2] 抄来的代码"""assert isinstance(to_addr_list, (list, tuple)) and len(to_addr_list) > 0for i, t in enumerate(to_addr_list):assert isinstance(t, str) and '@' in t, "Invalid E-mail address: [{}] ``{}''".format(i + 1, t)msg = MIMEText(text, 'plain', 'utf-8')msg['From'] = formataddr((Header(from_name, 'utf-8').encode(), from_addr)) if from_name else from_addrto_list = [formataddr((Header(tn, 'utf-8').encode(), ta)) for tn, ta in zip(to_name_list, to_addr_list)]to_list.extend(to_addr_list[len(to_name_list):])msg['To'] = ",".join(to_list)msg['Subject'] = Header(subject, 'utf-8').encode()# with smtplib.SMTP(server, port) as server:if ssl:server = smtplib.SMTP_SSL(server, port)else:server = smtplib.SMTP(server, port)server.set_debuglevel(1)server.login(from_addr, password)server.sendmail(from_addr, to_addr_list, msg.as_string())server.quit()if "__main__" == __name__:send_email("试水", "试下内网服务器通过 ssh 隧道用手提电脑做跳板发邮件",["马超", "李信"], ["chao.ma@qq.com", "xin.li@outlook.com"],"127.0.0.1",    # 学校内网服务器假装自己是 SMTP 服务器"吕布", "bu.lyu@sina.cn", "this-is-password",2525            # 指定端口(新浪))

References

  1. SMTP发送邮件
  2. iTomxy/ml-template/scripts/mail.py
  3. 【Python】用Python发邮件
  4. Python实现SMTP协议发送邮件(网易、新浪、qq)
  5. python smtplib 使用代理发送邮件
  6. Can someone explain SSH tunnel in a simple way? -> A Visual Guide to SSH Tunnels: Local and Remote Port Forwarding
  7. 免费邮箱pop3和smtp服务器
  8. iTomxy/ml-template/scripts/tunnel.bat
http://www.hkea.cn/news/438338/

相关文章:

  • 简单网站建设优化推广100个电商平台
  • 网站建设的仿站seo顾问收费
  • 珠宝行业做网站的好处株洲seo排名
  • java web开发网站开发cpa推广接单平台
  • 广西南宁网络营销网站网站权重优化
  • 黄山网站设计公司营销网站建设多少钱
  • 网站建设招标评分表湖南关键词优化推荐
  • 淘宝上成都网站建设如何制作视频网站
  • 最吃香的男生十大手艺5g网络优化
  • 河源哪里做网站网络项目怎么推广
  • 网站闭关保护怎么做广州百度seo 网站推广
  • 可以在线做动图的网站近期重大新闻事件
  • 伊犁州建设局网站怎么做微信小程序
  • 做网站需要买主机那新媒体营销方式有几种
  • 网络推广seo公司seo排名的方法
  • 南山做网站多少钱百度资讯
  • 西安哪里有做网站的小学生收集的新闻10条
  • 做游戏网站有几个要素seo网站关键词优化报价
  • 蓬业东莞网站建设技术支持东莞做网站公司首选
  • 网站版式设计获客渠道有哪些
  • 今日军事新闻简短扬州seo优化
  • 国外好看的教育类网站模板下载东莞做网站最好的是哪家
  • 微擎与wordpress快速优化seo软件推广方法
  • 英文网站设计哪家好免费网站搭建
  • 网站建设公司 销量深圳谷歌seo公司
  • 新蔡哪有做网站建设的全球疫情今天最新消息
  • 怎么做平台网站百度seo报价方法
  • 帮人做网站 怎么收费怎么用网络推广
  • 网站排名优化建设百度广告投放技巧
  • 文件服务器网站搭建教程好的竞价托管公司