有个关于 python 发邮件的问题

2015-05-29 23:14:37 +08:00
 xionghengheng
python的邮件模块可以指定的第三方的smtp服务器,在linux中,那我可不可以像php的mail函数那样直接指定为本机的smtp,host='localhhost'   这样能自动发邮件吗?
4255 次点击
所在节点    Python
19 条回复
tigerstudent
2015-05-30 01:31:41 +08:00
按我的了解,那样需要你在本机建立smtp服务器
cc7756789
2015-05-30 08:31:00 +08:00
用Python调用Linux命令 os.system subprocess.Popen
clino
2015-05-30 09:55:16 +08:00
可以!
xionghengheng
2015-05-30 10:02:44 +08:00
@cc7756789 我知道linux有个mutt命令 尝试了 但是该命令不能直接发html 不满足需求啊
xionghengheng
2015-05-30 10:03:58 +08:00
@clino 求个说法 哥们。。。。php实在恶心,怎么个使用法,我看python的邮件模块都是需要先connect然后login,而php得mail函数直接唰一下,就可以发
111111111111
2015-05-30 10:09:54 +08:00
@xionghengheng 那是在php.ini配好了发送邮件的命令。

同样的 你可以在Python自己写个mail 函数
xionghengheng
2015-05-30 10:13:08 +08:00
@111111111111 哥们 咋写。。。
loading
2015-05-30 10:22:09 +08:00
看看 mailgun 文档。
clino
2015-05-30 10:22:30 +08:00
knktc
2015-05-30 10:28:54 +08:00
用python就要常找找有没有现成的模块,比如这个sender模块,已经非常简单了 http://sender.readthedocs.org/en/latest/
n37r06u3
2015-05-30 10:32:05 +08:00
本地装个postfix发信
xionghengheng
2015-05-30 10:38:24 +08:00
@clino 给力啊 哥们
xionghengheng
2015-05-30 10:38:38 +08:00
@knktc 速度看看 感谢
clino
2015-05-30 10:50:30 +08:00
xionghengheng
2015-05-30 18:31:47 +08:00
@clino 哥们 没用 报错
Traceback (most recent call last):
File "haha.py", line 2, in <module>
server = smtplib.SMTP('localhost')
File "/home/users/wuzengxiong/.jumbo/lib/python2.7/smtplib.py", line 249, in __init__
(code, msg) = self.connect(host, port)
File "/home/users/wuzengxiong/.jumbo/lib/python2.7/smtplib.py", line 309, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/home/users/wuzengxiong/.jumbo/lib/python2.7/smtplib.py", line 284, in _get_socket
return socket.create_connection((port, host), timeout)
File "/home/users/wuzengxiong/.jumbo/lib/python2.7/socket.py", line 571, in create_connection
raise err
socket.error: [Errno 111] Connection refused
xionghengheng
2015-05-30 18:39:49 +08:00
mail.force_extra_parameters => no value => no value
sendmail_from => no value => no value
sendmail_path => /usr/sbin/sendmail -t -i => /usr/sbin/sendmail -t -i
Path to sendmail => /usr/sbin/sendmail -t -i
MAIL => /var/spool/mail/wuzengxiong
_SERVER["MAIL"] => /var/spool/mail/wuzengxiong
_ENV["MAIL"] => /var/spool/mail/wuzengxiong

php.ini的配置
xionghengheng
2015-05-30 18:46:57 +08:00
@knktc 你这也不能用本机smtp啊 也被拒绝
clino
2015-05-30 19:50:13 +08:00
你这两个配置的是什么?
_SERVER["MAIL"] => /var/spool/mail/wuzengxiong
_ENV["MAIL"] => /var/spool/mail/wuzengxiong
我是说 /var/spool/mail/wuzengxiong 里的内容

不过php的我完全不了解...
mengzhuo
2015-05-31 12:42:03 +08:00
LS说得都不对!!!
发邮件其实根本不需要本地建MTA(邮件传输代理), 不想花大钱也可以自己建。

smtplib就是和smtp服务器沟通用的!!!
所以,你只需要知道对方邮箱域名,通过MX记录查询,然后扔进去就行了,没那么多问题

当然,要保证送达率,首先得有稳定的IP,必须有DKIM、SPF,更高的话就需要DRAMC、SPF、Reverse DNS record了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/194808

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX