ruby利用mail和sendmail发送邮件

ruby利用mail和sendmail发送邮件

在linux上一般都带有mailx,mail或者sendmail,那么如何利用ruby来发送邮件呢?
实现起来并不太难.

思路
mail和sendmail都是linux下的命令,也就是说得让ruby调用这些命令,如何调用,那就是

ruby 代码
  1. IO.popen(sendmail_cmd)  


如何利用mail或sendmail发送邮件

 mail:

  1. mailx -s SUBJECT_CONTENT SEND_TO_EMAIL  

sendmail:

  1. #sendmail -t -v  
  2. To:someone@domain.com  
  3. From:your address  
  4. Subject: your subject  
  5. your email text  
  6. Ctrl_D  

Ruby实现
 
  Emailx:

  1. email_to=["to@domail.com"]  
  2. cc_to=[""ccc@domail.comm"] 
  3. file="attachment-path" 
  4.   sendmail_cmd="(uuencode  #{file};"  
  5.   sendmail_cmd<<"cat body)" 
  6.   sendmail_cmd <<" |mailx -s \"hello\" #{email_to} "  
  7.   pipe=IO.popen(sendmail_cmd)  

     sendmail

  1. pipe=IO.popen("/usr/sbin/sendmail -t -v","w")  
  2. pipe.puts "To: to@domain.com\n"  
  3. pipe.puts "From:Admin<admin@domain.com>\n"  
  4. pipe.puts "Subject: Subject here\n"  
  5. pipe.puts   
  6. pipe.puts "hello,this is email text!"  
  7.   
  8. pipe.close_write  

问题
 其实上面的实现很简单,不过有几个问题:

  • 对于emailx,如何改变from address呢
  • 对于sendmail,如何实现附件呢
张太国

Comments are closed.

Comments are closed.