如何从 Lucee 网络应用向单元格 phone 发送短信?
How do you send a txt message to a cell phone from a Lucee web app?
我希望我的应用程序在某些触发器上向用户发送文本消息,最好使用 cfmail 标记之类的东西。我以前从未需要从网络应用程序发送短信,但考虑到当今移动设备的数量巨大,我认为如果我需要它,它会内置到 CF/Lucee 中。但是,现在我没有在文档或 Google.
的前几页中看到任何内容
是否可以直接从 Lucee 发送短信?我知道我可以使用 cfmail 将消息发送到运营商的网关(即:xxxxxxxxxx@tmomail.net),但这需要我知道并维护每个运营商地址方案的列表,并知道收件人使用的是哪个运营商,我不能。我想做的事情只能通过第三方服务实现吗?
我不知道有什么方法可以在 ColdFusion 中本地执行此操作,但我已经使用 Twilio 通过 Twilio API 从 ColdFusion 发送 SMS 消息:https://www.twilio.com/sms
他们提供免费的开发者帐户,因此您可以先试用再购买。
几乎所有移动运营商都可以接收电子邮件并将其作为文本 (SMS) 消息转发。
- Send an email as text to an AT&T wireless number
- Send text messages using email (Verizon)
- How to Send Text Messages Via Email to Sprint Customers
我们保留了一个数据库 table,其中包含所有当前运营商及其 email-to-text 域。用户可以使用他们的手机号码更新他们的个人资料,并且必须 select 移动运营商才能获得接收短信的选项。
来自 AT&T 的网站:
Text message - Compose a new email and enter the recipient's 10-digit wireless number, followed by @txt.att.net. For example, 5551234567@txt.att.net.
Picture or video message - Compose a new email and enter the recipient's 10-digit wireless number, followed by @mms.att.net. For example, 5551234567@mms.att.net.
您只需使用 <cfmail>
发送短信,就像发送普通电子邮件一样。
Twilio (https://www.twilio.com/try-twilio) 可以轻松发送短信。您需要做的就是发出 HTTP POST 请求。
当您成功发送一条消息时,Twilio 会返回有关该过程的数据,包括消息 SID(系统 ID)。
这是一些代码,您可以将其放入 .cfm
页面,然后 运行 它可以发送消息。将三个 PLACEHOLDERS
替换为您的 Twilio 值。
在 signup/login 使用 Twilio 之后,您会在 "Dashboard" 上找到您的 Twilio 凭据 ACCOUNT_SID
和 AUTH_TOKEN
。
YOUR_TWILIO_PHONE_NUMBER
应该以 +
开头。
<cffunction name="sendMessageWithTwilio" output="false" access="public" returnType="string">
<cfargument name="aMessage" type="string" required="true" />
<cfargument name="destinationNumber" type="string" required="true" />
<cfset var twilioAccountSid = "YOUR_ACCOUNT_SID" />
<cfset var twilioAuthToken = "YOUR_AUTH_TOKEN" />
<cfset var twilioPhoneNumber = "YOUR_TWILIO_PHONE_NUMBER" />
<cfhttp
result="result"
method="POST"
charset="utf-8"
url="https://api.twilio.com/2010-04-01/Accounts/#twilioAccountSid#/Messages.json"
username="#twilioAccountSid#"
password="#twilioAuthToken#" >
<cfhttpparam name="From" type="formfield" value="#twilioPhoneNumber#" />
<cfhttpparam name="Body" type="formfield" value="#arguments.aMessage#" />
<cfhttpparam name="To" type="formfield" value="#arguments.destinationNumber#" />
</cfhttp>
<cfif result.Statuscode IS "201 CREATED">
<cfreturn deserializeJSON(result.Filecontent.toString()).sid />
<cfelse>
<cfreturn result.Statuscode />
</cfif>
</cffunction>
<cfdump var='#sendMessageWithTwilio(
"This is a test message.",
"+17775553333"
)#' />
我希望我的应用程序在某些触发器上向用户发送文本消息,最好使用 cfmail 标记之类的东西。我以前从未需要从网络应用程序发送短信,但考虑到当今移动设备的数量巨大,我认为如果我需要它,它会内置到 CF/Lucee 中。但是,现在我没有在文档或 Google.
的前几页中看到任何内容是否可以直接从 Lucee 发送短信?我知道我可以使用 cfmail 将消息发送到运营商的网关(即:xxxxxxxxxx@tmomail.net),但这需要我知道并维护每个运营商地址方案的列表,并知道收件人使用的是哪个运营商,我不能。我想做的事情只能通过第三方服务实现吗?
我不知道有什么方法可以在 ColdFusion 中本地执行此操作,但我已经使用 Twilio 通过 Twilio API 从 ColdFusion 发送 SMS 消息:https://www.twilio.com/sms
他们提供免费的开发者帐户,因此您可以先试用再购买。
几乎所有移动运营商都可以接收电子邮件并将其作为文本 (SMS) 消息转发。
- Send an email as text to an AT&T wireless number
- Send text messages using email (Verizon)
- How to Send Text Messages Via Email to Sprint Customers
我们保留了一个数据库 table,其中包含所有当前运营商及其 email-to-text 域。用户可以使用他们的手机号码更新他们的个人资料,并且必须 select 移动运营商才能获得接收短信的选项。
来自 AT&T 的网站:
Text message - Compose a new email and enter the recipient's 10-digit wireless number, followed by @txt.att.net. For example, 5551234567@txt.att.net.
Picture or video message - Compose a new email and enter the recipient's 10-digit wireless number, followed by @mms.att.net. For example, 5551234567@mms.att.net.
您只需使用 <cfmail>
发送短信,就像发送普通电子邮件一样。
Twilio (https://www.twilio.com/try-twilio) 可以轻松发送短信。您需要做的就是发出 HTTP POST 请求。
当您成功发送一条消息时,Twilio 会返回有关该过程的数据,包括消息 SID(系统 ID)。
这是一些代码,您可以将其放入 .cfm
页面,然后 运行 它可以发送消息。将三个 PLACEHOLDERS
替换为您的 Twilio 值。
在 signup/login 使用 Twilio 之后,您会在 "Dashboard" 上找到您的 Twilio 凭据 ACCOUNT_SID
和 AUTH_TOKEN
。
YOUR_TWILIO_PHONE_NUMBER
应该以 +
开头。
<cffunction name="sendMessageWithTwilio" output="false" access="public" returnType="string">
<cfargument name="aMessage" type="string" required="true" />
<cfargument name="destinationNumber" type="string" required="true" />
<cfset var twilioAccountSid = "YOUR_ACCOUNT_SID" />
<cfset var twilioAuthToken = "YOUR_AUTH_TOKEN" />
<cfset var twilioPhoneNumber = "YOUR_TWILIO_PHONE_NUMBER" />
<cfhttp
result="result"
method="POST"
charset="utf-8"
url="https://api.twilio.com/2010-04-01/Accounts/#twilioAccountSid#/Messages.json"
username="#twilioAccountSid#"
password="#twilioAuthToken#" >
<cfhttpparam name="From" type="formfield" value="#twilioPhoneNumber#" />
<cfhttpparam name="Body" type="formfield" value="#arguments.aMessage#" />
<cfhttpparam name="To" type="formfield" value="#arguments.destinationNumber#" />
</cfhttp>
<cfif result.Statuscode IS "201 CREATED">
<cfreturn deserializeJSON(result.Filecontent.toString()).sid />
<cfelse>
<cfreturn result.Statuscode />
</cfif>
</cffunction>
<cfdump var='#sendMessageWithTwilio(
"This is a test message.",
"+17775553333"
)#' />