`
hellosoft
  • 浏览: 55201 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

send email by Ruby

阅读更多
笔者近来正在使用ruby编写数据检查的脚本,由于需要将检查结果发送给指定的管理员,所以就写了一个专门发送email的脚本。
定有很多不足之处,望各位多提宝贵意见!

可以指定发送内容,
也可以指定发送文件,系统会自动将文件中的内容读取,然后发送

require "net/smtp"

# params : 
#   ARGV[0] = subject
#   ARGV[1] = content
#   ARGV[2] = filename
#   ARGV[3] = to

def sendemail(subject,content,to=nil)
	from = "info@163.com"
	to = ["system1@163.com","system2@163.com"] if to.nil?
	sendmessage = "Subject: "+subject +"\n\n"+content
	smtp = Net::SMTP.start("mail.163.com",25)
	smtp.send_message sendmessage,from,to
	smtp.finish
end
def sendemail_file(subject,filename,to)
	content = ""
	File.open(filename) do |file|
	  file.each_line {|line| content += "#{line}\n" }
	end
	sendemail(subject,content,to)
end


subject = ARGV[0] || "system autoly send"
content = ARGV[1] || ""
filename = ARGV[2] || ""
to = ARGV[3] 

if content.to_s == "" and filename.to_s!=""
	sendemail_file(subject,filename,to)
else
  content = "Nothing" if content.to_s == ""
  sendemail(subject,content,to)
end



e.g.例如将文件保存为sendemail.rb)
ruby sendemail.rb subject ok
ruby sendemail.rb subject "" filename.txt system3@163.com
分享到:
评论
3 楼 liyu212 2009-06-18  
/ruby/1.8/net/smtp.rb:679:in `check_response': 550 Mailbox not found (Net::SMTPFatalError)

如何处理对方邮件地址不存在的错误,使程序继续运行,不退出
2 楼 hellosoft 2008-06-23  
实在有些不好意思,因为时间太久了,我不记得了。呵呵,你自己查一下吧,如果还是解决不了,我再查,好不?
1 楼 Jmlover 2008-04-05  
密码是怎么设置的?

在doc中看到,说
smtp = Net::SMTP.start('smtp.163.com', 25, 'xxxx@163.com',
                  'xxxx', 'xxxxpassword', :login)
最后一个参数怎么设置? 好像设置为:login,登录的时候好像不能成功!

相关推荐

    sendEmailTest.rar

    "sendEmailTest.rar"这个压缩包显然包含了一个实现此类功能的Java代码示例。在Java中,我们通常使用JavaMail API来处理邮件发送。这个API提供了一系列接口和类,允许开发者创建、配置和发送邮件。下面我们将深入探讨...

    send_email.py

    send_email.py

    email_send_test.rar_email-test.php_php email_php 邮件_send_email.p

    标题 "email_send_test.rar_email-test.php_php email_php 邮件_send_email.p" 提供的信息表明,这是一个关于使用PHP发送电子邮件的示例项目。描述中提到"简单的邮件收发实例,基于PHP环境,基础学习",说明这个压缩包...

    SendEmailTest.rar_java程序

    本示例“SendEmailTest.rar”提供了一个简单的Java程序,用于演示如何使用Java发送电子邮件。通过学习这个程序,我们可以掌握Java邮件API的基础知识。 JavaMail API是Java平台上的一个标准API,它允许程序员通过...

    VB .NET OUTLOOK SEND EMAIL.zip_vb email_vb.net

    标题 "VB .NET OUTLOOK SEND EMAIL.zip_vb email_vb.net" 暗示这是一个关于使用Visual Basic .NET (VB.NET)通过Microsoft Outlook发送电子邮件的教程或代码示例。描述 "send mail via outlook" 确定了这个主题是关于...

    ruby官方chm文档

    理解如何使用`eval`、`class_eval`和`instance_eval`,以及如何利用`send`和`method_missing`进行消息传递,是提升Ruby编程技巧的关键。 《ruby23.chm》文档可能是整个Ruby语言的综合指南,可能包含前面几个文档的...

    Ruby-DingTalkBot是阿里钉钉自定义机器人的Ruby库

    bot.send_text('这是来自Ruby的钉钉消息') ``` 总的来说,Ruby-DingTalkBot为Ruby开发者提供了与阿里钉钉自定义机器人互动的便利工具,它降低了对接钉钉API的复杂度,让开发者能更专注于业务逻辑的实现,提升工作...

    Ruby元编程第二版中文

    1. **方法定义与调用**:Ruby允许在运行时定义和修改方法,如`define_method`函数可以动态创建方法,而`send`或`__send__`则用于在运行时调用方法。 2. **类与模块操作**:Ruby的`Class.new`和`Module.new`可以用来...

    Best of Ruby Quiz

    5. **元编程**:Ruby的元编程能力强大,如`send`方法、类方法定义、`class_eval`、`instance_variable_get/set`等,这些工具使得Ruby代码能自我修改和扩展。 6. **Ruby on Rails框架**:虽然书名未提及,但Ruby与...

    ruby metaprograming

    根据给定文件的信息,这里似乎存在一定的混淆,因为文件内容主要涉及的是IBM Lotus Domino 7邮件服务器的配置指南,而非“Ruby元编程”。不过,基于您的需求,我将重点围绕“Ruby元编程”这一主题来生成相关的知识点...

    ruby中文教程,从基础到深入的让你学习ruby

    此外,Ruby的`send`方法可以动态调用方法,`method_missing`可以捕获未定义的方法调用。 Ruby的Gem库是其生态系统的一大亮点,提供大量的第三方库和框架,如Rails(一个流行的Web开发框架)、Sinatra(轻量级Web...

    Ruby元编程 源代码 Metaprogramming Ruby source code

    3. **消息发送**:`send`或`__send__`方法可以动态地调用其他方法,这使得你可以根据条件或数据来决定调用哪个方法。 4. **反射API**:Ruby提供了一系列的反射API,如`Class#methods`,`Module#constants`,`Object...

    发送QQ邮件send Email

    最后,使用Transport类的send方法将邮件发送出去。 以下是一个简单的Java代码示例,演示了如何使用QQ邮箱发送邮件: ```java import javax.mail.*; import javax.mail.internet.*; public class SendQQEmail { ...

    ruby的pop3、SMTP类库说明

    smtp.send_message message, 'your-email@example.com', 'recipient-email@example.com' end ``` 请注意,实际应用中应考虑错误处理和异常捕获,以确保在遇到问题时能优雅地处理。此外,SMTP服务器通常要求安全...

    send_email_attachment.py

    send_email_attachment

    SendEmailTest.rar_邮箱 eclipse

    【标题】"SendEmailTest.rar_邮箱 eclipse"指的是一个基于Eclipse开发的Android应用程序,用于测试邮件发送功能。这个程序允许用户将手机上的联系人导出为CSV(逗号分隔值)文件,并通过电子邮件发送到指定地址。...

    Ruby元编程pdf

    此外,`Object#send`方法允许动态调用对象的方法,而`instance_variable_set/get`则用于动态设置和获取实例变量。 5. **元类(Meta-class)**:每个Ruby对象都有一个元类,存储了对象的实例方法。元类的概念使得...

    ruby实现邮件收发

    1. **通过SMTP发送Email** SMTP是互联网上用于传输电子邮件的标准协议。在Ruby中,可以使用内置的`Net::SMTP`库来实现邮件发送。清单1展示了如何创建并发送一封邮件的方法。关键步骤如下: - 定义全局变量,如`...

Global site tag (gtag.js) - Google Analytics