新手问题 邮件发送一点儿不懂

xiaobai2 · 2016年10月24日 · 最后由 xiaobai2 回复于 2016年10月25日 · 2050 次阅读
Axlsx::Package.new do |p|
      p.workbook.add_worksheet(:name => "xxx") do |sheet|
        array = ["a","b","c","d","e"]
        sheet.add_row array
      end
      p.serialize('测试一.xlsx')
    end

如上在本地生成了测试一.xlsx 文件,怎么将本地生成的这个文件发送到特定邮箱呢? 求思路

#1 楼 @w7938940 看不太懂,具体该怎么做?

#2 楼 @xiaobai2 先要配置Action Mailer,这里有中文教程,然后在发送邮件的 action 里面加上你需要的附件

attachments['测试一.xlsx'] = File.read('/path/to/测试一.xlsx')

#3 楼 @w7938940 如果我不生成附件了,直接把 p 发送给指定邮箱,该怎么做?现在发送邮件这块儿已经走通了,但是怎么把 p 以附件的形式发送给指定用户

#4 楼 @xiaobai2 attachments 支持指定 content,你的 p 也可以用 to_stream 转换成 StringIO,以下代码未经测试

attachments['测试一.xlsx'] = {
  :mime_type => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
  :content => p.to_stream.read 
}

#5 楼 @w7938940 谢谢,知道了,文档看的太少了

xiaobai2 关闭了讨论。 10月25日 18:19
需要 登录 后方可回复, 如果你还没有账号请 注册新账号