Rails AWS EB 응용 프로그램 (작업자 계층)에서 CSV 첨부 파일이 포함 된 전자 메일을 보내려고합니다.작업 메일러 및 AWS 대기열로 CSV 첨부 파일 보내기
이 예에서는 데이터가 첨부 된 상태로 전자 메일을 올바르게 보내고 여기에 CSV 문자열을 하드 코드했습니다. 나는 API에서 CSV 문자열을 보낼 때
def send_mail
content = "Example,CSV,Content\n,..."
attachments['test.csv'] = { mine_type: 'text/csv', content: content}
mail( :from => '[email protected]>',
:to => '[email protected]',
:subject => 'Email with attachment',
:body => "testing sending email attachment"
)
end
그러나 나는 인코딩에 문제가있는 것 같다. 내가 보내려는 물건은 이것입니다.
email = {
from: "[email protected]",
to: "[email protected]",
subject: "Email with attachment",
content_type: 'text/html',
attachments: {
filename: 'test.csv',
content: File.read("#{Rails.root}/test.csv")
}
}
그리고 그 방법;
def send_mail(params)
filename = params[:attachments][:filename]
attachments[filename] = { mine_type: 'text/csv',
content_type: 'text/comma-separated-values',
transfer_encoding: '7bit',
content: [:attachments][:content]
}
mail(params)
end
은 내가 '7 비트'내용이 base64로 암호화됩니다로 설정하지 않으면 transfer_encoding에 문제가있을 수 있습니다 생각합니다. 작업 메일러 방법 attachments.instance_values 을 사용하여 작동하는 전자 메일 및 해당 바이너리의 content_encoding을 확인했습니다. 그러나 실패한 예제에서는 바이너리로 설정했지만 base64로 되돌립니다. params [: attachments] [: content]를 변수로 설정하면 attachments.instance_values를 기록 할 때 값은 'binary'이지만 메일이 수신되면 메시지가 표시됩니다.
----==_mimepart_57ac6ae25a220_68972ad836f669fc984a7
Content-Type: text/comma-separated-values; charset=UTF-8
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=test.csv
mine-type: text/csv
Content-ID: <57ac6ae259b90_68972ad836f669fc983b0>
감사의 말 :