Verizon 电子邮件到文本被提前切断
Posted
技术标签:
【中文标题】Verizon 电子邮件到文本被提前切断【英文标题】:Verizon email to text being cut off early 【发布时间】:2014-05-06 20:02:57 【问题描述】:我正在使用Mandrill
到send email to text. 编写一个Ruby on Rails
应用程序
我的短信在 AT&T、T-Mobile 和 Sprint 上运行良好。但是我给威瑞森的短信被截断了。我听说 Verizon 的字符限制为 160 个字符,但我的文本比这更早被截断,大约 80 个字符。
有人知道为什么会这样吗?
我只发送纯文本电子邮件。
编辑 - 每个请求的代码
邮寄者:
class Texter < ActionMailer::Base
default from: "texts@domain.com"
def test(number, content)
@content = content
mail(:to => number)
end
end
查看 (test.text.erb)
<%= @content %>
【问题讨论】:
向我们展示您的剥离代码,以证明该问题。 @theTinMan 没有太多代码可以展示,一个发送电子邮件的基本 Rails 邮件程序 @theTinMan 随便提出来 【参考方案1】:字符限制实际上是由 SMS 协议定义的最大有效载荷大小为1120
位这一事实引起的。
就字符而言,长度因编码而异。
7 位 = 160 个字符 8 位 = 140 个字符 16 位 = 70 个字符此外,一些提供程序在消息内容中包含From
和/或Subject
字段,这进一步减少了可用于消息的可用空间数量。
【讨论】:
为什么其他运营商没有发生这种情况?只是verizon。 @Deekor 他们使用的 API 可能是 UTF-8 问题。所以你已经有 ≈ 70 个字符。 我只是通过 gmail 到 verizon 试了一下,没有中断。 @Deekor 好吧,出于某种原因,您正在发送 UTF-8 或其他多字节编码。我不知道它来自哪里,但是调试和跟踪它,你会发现它来自哪里。 所以你认为我应该使用 UTF-7 吗?如果我处理了大约 90 个字符,那是否意味着它使用 16 位?【参考方案2】:对于 Verizon 用户,不要使用 ##########@vtext.com 地址,而是使用备用的 ##########@vzwpix.com 地址,以便 Verizon 客户接收较长的彩信或包含图片和视频的消息。
我发现发送到 vtext.com 地址的邮件被截断为 150 个字符(实际截断似乎取决于电子邮件地址中的字符数或邮件是否包含主题行等)。没有与原始消息的其余部分一起自动生成,它们只是被截断了。
发送到 vzwpix.com 地址我能够收到完整的消息,远远超过 150-160 个字符的限制。
【讨论】:
【参考方案3】:您声明发送至 SMS 的电子邮件适用于其他提供商,例如 AT&T、T-Mobile 和 Sprint。您的电子邮件内容可能没问题,但要验证该假设,请尝试手动向 Verizon 电子邮件到短信网关发送电子邮件。
从那里您会发现这是您的电子邮件内容或网关本身的问题。如果有问题,希望您能从网关得到某种诊断的响应。
我推荐的另一个选项是 sms-fu gem [1]。作为奖励,它支持的提供商比您提到的 4 个更多。
祝你好运!
[1]https://github.com/brendanlim/sms-fu
【讨论】:
感谢您的建议,我会试一试。 通过 gmail 到 verizon 尝试过,但没有中断。以上是关于Verizon 电子邮件到文本被提前切断的主要内容,如果未能解决你的问题,请参考以下文章