crontab perl 定时发送邮件

我用perl和crontab在ubuntu12.04LTS上来检查某个正在运行的任务的完成情况,并将详细结果通过Net::SMTP发送到我指定的邮箱中。当我自己手动运行这... 我用perl 和crontab在ubuntu 12.04LTS上来检查某个正在运行的任务的完成情况,并将详细结果通过Net::SMTP发送到我指定的邮箱中。当我自己手动运行这个perl程序的时候,没有任何问题。但是用crontab进行定时发送的时候,就出现以下的错误:
553 you are not authorized to send mail ,authentication is required
503 5.5.1 Bad sequence of commands
500 5.5.1 Invalid command
请知道如何解决这个问题的朋友帮忙。谢谢。
展开
 我来答
百度网友c9e795dda
2013-08-19 · TA获得超过5167个赞
知道大有可为答主
回答量:1128
采纳率:0%
帮助的人:1156万
展开全部

情况应该是在 domain ( 域 ) 或 user 的权限问题. 


一种推理, 假设用 perl 执行时没有问题, 那可能是因为你正在以自己 user id 的身份来执行, mail server 允许 relay. 又或者因为你的 id 所属的 group / domain 是 mail server 所 "信任的" 范围, 所以能直接执行. 但交到 crontab 时, 就不再是以你自己的 user id / domain / group 来运行,  於是 mail server 不接受由 crontab 发送邮件的请求. 


建议的方法有两个.

  1. 在 mail server 将你 crontab 所属的 domain 加入信任范围. 

  2. 用上 Net::SMTP 里的 auth() 这个方法, 在代码中加入你的 user id 和 password ( 送件的, 不是收件的, 除非收发都是同一个帐号 )

eexpress
2013-08-19 · TA获得超过884个赞
知道大有可为答主
回答量:1493
采纳率:100%
帮助的人:777万
展开全部
use Mail::Sender;

理解cron的环境变量和你的shell的不同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式