gpt4 book ai didi

ruby - pony 不向 gmail 地址发送电子邮件?

转载 作者:数据小太阳 更新时间:2023-10-29 08:28:59 26 4
gpt4 key购买 nike

我有一张报名表,要求填写人员姓名和电子邮件地址。我将该电子邮件地址保存到 session 中,以便在提交表单后访问它。然后我使用 Pony 向提交表单的人发送一封感谢/通知电子邮件。但是,虽然它可以毫无问题地发送到 MobileMe 地址,但不会发送到 gmail 地址。我用来发送的行是:

Pony.mail(:to => "#{@email}", :from => 'from@email.com', :subject => "Thanks for entering!", 
:body => "Thank you!")

@email 变量在处理程序中定义并从 session 中获取值。

有什么想法吗?

最佳答案

这是我使用的辅助方法,它使用 Pony 在我的 Mac 上开发时使用 sendmail 发送电子邮件,或者在 Heroku 上通过 sendgrid 发送电子邮件时在生产中。这工作可靠,我所有的测试电子邮件都发送到我的各种 gmail 地址。

您的问题可能是您的 from 地址无效,Google 将其标记为垃圾邮件。我还注意到您没有设置 Content-Type header ,在我的例子中通常是 text/html

def send_email(a_to_address, a_from_address , a_subject, a_type, a_message)
begin
case settings.environment
when :development # assumed to be on your local machine
Pony.mail :to => a_to_address, :via =>:sendmail,
:from => a_from_address, :subject => a_subject,
:headers => { 'Content-Type' => a_type }, :body => a_message
when :production # assumed to be Heroku
Pony.mail :to => a_to_address, :from => a_from_address, :subject => a_subject,
:headers => { 'Content-Type' => a_type }, :body => a_message, :via => :smtp,
:via_options => {
:address => 'smtp.sendgrid.net',
:port => 25,
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => ENV['SENDGRID_DOMAIN'] }
when :test
# don't send any email but log a message instead.
logger.debug "TESTING: Email would now be sent to #{to} from #{from} with subject #{subject}."
end
rescue StandardError => error
logger.error "Error sending email: #{error.message}"
end
end

关于ruby - pony 不向 gmail 地址发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6849732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com