2011-08-10 5 views
16

Tôi đang cố gắng tạo tiêu đề email tùy chỉnh để sử dụng api SendGrid.Cách tạo tiêu đề email tùy chỉnh

Đây là những gì tôi đang làm - nhưng nó không làm việc:

class Mailman < ActionMailer::Base 
    default :from => "[email protected]" 

    def send_message(name, email, message) 
    @name = name 
    @email = email 
    @message = message 

    mail(:to => '[email protected]', 
    :from => email, 
    :subject => "Message from the site", 
    :headers['X-SMTPAPI'] => "category: Drip Email" 
    ) 
    end 

end 

Bất kỳ trợ giúp đánh giá cao.

Cảm ơn, Adam

Trả lời

44

bạn có thể sử dụng phương pháp #headers ActionMailer, tôi đã chỉnh sửa ví dụ của bạn để hiển thị như thế nào:

class Mailman < ActionMailer::Base 
    default :from => "[email protected]" 

    def send_message(name, email, message) 
    @name = name 
    @email = email 
    @message = message 

    headers['X-SMTPAPI'] = '{"category": "Drip Email"}' 

    mail(:to => '[email protected]', 
    :from => email, 
    :subject => "Message from the site" 
    ) 
    end 

end 

Ngoài ra, bạn có thể vượt qua một hash như một tham số (đến #headers phương pháp) quá:

headers {"SPECIFIC-HEADER-1" => "value", "ANOTHER-HEADER" => "and so..."} 

tôi hy vọng điều này có thể giúp bạn, và nếu không bạn luôn có thể kiểm tra các hướng dẫn ray: http://edgeguides.rubyonrails.org/action_mailer_basics.html.

+0

Cảm ơn Ricardo - câu trả lời nằm trước mặt tôi. Tôi đã thử điều này và làm cho nó hoạt động. Sau đó, bạn đăng xác nhận giải pháp của tôi. Cảm ơn một lần nữa. – Northband

+0

Rất tuyệt! Cảm ơn vì bạn đã phản hồi. –

+0

Điều này không hiệu quả đối với tôi. Xem câu trả lời của tôi! –

2

Phương thức tiêu đề yêu cầu JSON hợp lệ. Vì vậy, giải pháp của Ricardo đòi hỏi dòng này thay vì:

tiêu đề [ 'X-SMTPAPI'] = '{ 'thể loại': 'nhỏ giọt Gửi email về'}'

3

Tôi đang sử dụng bên dưới mã và hoạt động tốt, chỉ cần chuyển đổi băm để JSON với to_json

headers['X-SMTPAPI'] = { 
    category: "Weekly Newsletter", 
    unique_args: { user_id: user.id } 
}.to_json 
1

để sử dụng các nhóm ngừng đăng ký trong các chức năng nhóm ức chế trong sendgrid, tôi sử dụng cú pháp sau mà làm việc.

headers['X-SMTPAPI'] = '{"asm_group_id": 1111}'