Ruby on rails 4 带有字符“的邮件gem错误”&&引用;论电子邮件的本地部分
我的系统已经正确发送电子邮件很长一段时间了,但是昨天我插入了电子邮件Ruby on rails 4 带有字符“的邮件gem错误”&&引用;论电子邮件的本地部分,ruby-on-rails-4,character-encoding,actionmailer,Ruby On Rails 4,Character Encoding,Actionmailer,我的系统已经正确发送电子邮件很长一段时间了,但是昨天我插入了电子邮件c&a@fakedomain.com(fakedomain是此处用于隐私的假域),导致以下错误: 550 restricted characters in address /home/solvis/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/smtp.rb:957:in `check_response' /home/solvis/.rvm/rubies/ruby-2.1.2/lib/r
c&a@fakedomain.com
(fakedomain是此处用于隐私的假域),导致以下错误:
550 restricted characters in address
/home/solvis/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/smtp.rb:957:in `check_response'
/home/solvis/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/smtp.rb:926:in `getok'
/home/solvis/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/smtp.rb:869:in `rcptto'
/home/solvis/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/smtp.rb:850:in `block in rcptto_list'
/home/solvis/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/smtp.rb:848:in `each'
/home/solvis/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/smtp.rb:848:in `rcptto_list'
/home/solvis/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/smtp.rb:663:in `send_message'
/home/solvis/rails-deploy/server/shared/bundle/ruby/2.1.0/gems/mail-2.6.3/lib/mail/network/delivery_methods/smtp.rb:113:in `block in deliver!'
/home/solvis/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/smtp.rb:521:in `start'
/home/solvis/rails-deploy/server/shared/bundle/ruby/2.1.0/gems/mail-2.6.3/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!'
/home/solvis/rails-deploy/server/shared/bundle/ruby/2.1.0/gems/mail-2.6.3/lib/mail/message.rb:2141:in `do_delivery'
/home/solvis/rails-deploy/server/shared/bundle/ruby/2.1.0/gems/mail-2.6.3/lib/mail/message.rb:236:in `block in deliver'
/home/solvis/rails-deploy/server/shared/bundle/ruby/2.1.0/gems/actionmailer-4.1.7/lib/action_mailer/base.rb:527:in `block in deliver_mail'
...
字符&和邮件gem可能存在一些问题。这可能是一些编码问题,但我找不到解决办法
Obs:根据,电子邮件本地部分的和是有效的。电子邮件本身是有效的
编辑:
我尝试直接从我的邮件服务器发送邮件,它可以正确地发送到本地部分带有“&”字符的电子邮件。这可能是mail gem对非美国ascii字符的自动编码。有任何提示吗?此错误来自SMTP服务器,而不是邮件gem或操作邮件程序。这通常意味着收件人的邮件服务器说邮箱不存在,但在本例中,它拒绝该地址,因为它不喜欢该字符
虽然电子邮件地址通常允许使用
&
,但电子邮件服务器可以自由地将电子邮件地址限制为所需的任何字符。“地址中的550个受限字符”表示您的电子邮件地址至少有550个字符长。我不认为这个错误可能是由单个&
字符引起的。噢,也许当我去掉这个字符时,它会随着字符数的减少而自动解决。我以为550是错误号码。哈哈,我会查一查,我误读了错误信息。你完全正确,550是错误代码。看看下面我的答案。我还看了我的邮件列表。没有一个大于130个字符。因此,它可能确实是&字符。我来看看我的邮件服务器。我认为邮件gem可以限制一些字符,因为gems文档说它自动编码非美国ascii字符:我尝试通过命令行直接从服务器发送电子邮件,它与“&”字符配合得很好。它返回到邮件gem自动编码。。。有什么提示吗?不幸的是,没有。据我所知,邮件gem只使用非美国ASCII字符,所以它不会触及&
。这可能发生在Net::SMTP中。我真的不知道。如果您可以访问服务器,最好检查它的日志,看看它实际接收到的字符。