2017-06-26 3 views
2

Es ist sehr klar, wie Sie eine SMS an eine E-Mail-Adresse mit Twilio weiterleiten sollten - sie haben ein gutes Beispiel dafür mit PHP-Code auf einem Drittanbieter-Server gehostet.Kann ich SMS mit NUR einer Twiml-Ablage an eine E-Mail weiterleiten?

Ich möchte jedoch eine SMS an eine E-Mail-Adresse mit NUR einer Twiml-App und keine anderen Drittanträge/Code weiterleiten. Ich habe versucht, dies über die Funktion:

<Response> 
<Message to="[email protected]">{{From}}: {{Body}}</Message> 
</Response> 

... aber das hat nicht funktioniert, vermutlich, weil nur eine Telefonnummer als die akzeptiert „an:“.

Ist es möglich, dies nur mit einem Twiml-Fach zu tun?

Antwort

1

Twilio Entwickler Evangelist hier.

Sie können keine SMS-Nachrichten mit nur einem TwiML Bin an eine E-Mail-Adresse weiterleiten. Sie haben recht, die <Message> TwiML akzeptiert nur eine Telefonnummer im to Attribut.

Dies könnte mit einer Twilio-Funktion und etwas Node.js Code getan werden. Ich habe das vorher noch nicht getan, also müsste ich einige Zeit damit verbringen, es zu bauen, um dir zu sagen, wie.

Hier finden Sie ein Beispiel für die Erstellung eines app that forwards SMS to email using PHP.

Alternativ können Sie auch Zapier to forward SMS messages to your email einrichten.

Lassen Sie mich wissen, ob das überhaupt hilft.

+0

Vielen Dank. Ja, ich nehme an, das ist eine gute Anwendung für die neuen Funktionen ... würde der node.js-Code irgendwo gehostet werden oder kann man alles in die Funktion einbauen und alles bei twilio hosten? – user227963

+0

Alles könnte in der Funktion gehen und bei Twilio gehostet werden. Deshalb haben wir Funktionen erstellt! – philnash

1

OK Sie sagten keine Anfrage/Code von Drittanbietern, aber wie wäre es mit einer Anfrage an Google und Ihrem eigenen Code?

Wenn Sie ein Google Mail-Konto haben, können Sie es mit Google Scripts machen. Sie hosten den Code für Sie und es ist ziemlich einfach.

Gehen Sie zu https://script.google.com und erstellen Sie ein neues Projekt, löschen Sie den Code im Fenster und fügen Sie im folgenden, ersetzen Sie die E-Mail-Adresse mit dem, an den Sie die E-Mails erhalten möchten.

function doGet(e){ 
var from = e.parameter.From; 
var to = e.parameter.To; 
var body = e.parameter.Body; 
var emailAddress = '[email protected]'; 
var message = body; 
var subject = 'SMS from ' + from + ' to ' + to + ' received'; 
MailApp.sendEmail(emailAddress, subject, message); 
var output = ContentService.createTextOutput('<Response/>'); 
output.setMimeType(ContentService.MimeType.XML); 
return output; 
} 

Wählen Sie im Menü "Veröffentlichen" die Option "Als Webanwendung bereitstellen". Set Führe die App als: zu mir aus, dann setze Wer hat Zugriff auf die App: zu Jedermann, auch anonym.

Klicken Sie nun auf "Bereitstellen" und Google fordert Sie auf, Ihr Skript zu authentifizieren, damit es E-Mails wie Sie senden kann (aber nicht auf Ihre eingehenden E-Mails zugreifen). Sobald Sie die Berechtigung erteilt haben, erhalten Sie die URL für Ihr Skript.

Fügen Sie diese URL in Ihren Twilio Konsole als Webhook Handler für, wenn eine Nachricht eingeht und stellen Sie die Methode HTTP GET

das ist Sie die SMS Alle tun wird eine E-Mail. Ändern Sie den <Response/> in der Zeile darunter enthalten TwiML für an den Absender oder was auch immer Sie Twilio tun wollen, wenn Nachrichten in kommen.

var output = ContentService.createTextOutput('<Response/>'); 

Offensichtlich ist dies nur ein einfaches Beispiel, gibt es keine Authentifizierung/Sicherheit etc so Bei jedem Aufruf Ihrer Skript-URL erhalten Sie eine E-Mail. Sie sollten es wirklich sichern, obwohl die URL, die Google generiert, nicht die Art ist, auf die wahrscheinlich jemand stolpert.

0

Mit Twilio Functions und Mailgun API SMS-Nachrichten an eine E-Mail-Adresse weiterleiten.

Node.js Code für die Twilio Funktion:

const https = require('https'); 
const querystring = require('querystring'); 

exports.handler = function(context, event, callback) { 

    let twiml = new Twilio.twiml.MessagingResponse(); 
    twiml.message("Thanks. Your message has been forwarded to an email address."); 

    let postData = querystring.stringify({ 
     from: 'Twilio Function <[email protected]>', 
     to: '[email protected]', 
     subject: 'SMS message from ' + String(event.From), 
     text: String(event.Body) 
    }); 

    let postOptions = { 
     host: 'api.mailgun.net', 
     port: '443', 
     path: '/v3/sandbox1q2w3e4r5t6y7u8i9o0p.mailgun.org/messages', 
     method: 'POST', 
     auth: 'api:key-1q2w3e4r5t6y7u8i9o0p', 
     headers: { 
      'Content-Type': 'application/x-www-form-urlencoded', 
      'Content-Length': Buffer.byteLength(postData) 
     } 
    }; 

    let req = https.request(postOptions, function(res) { 
     res.setEncoding('utf8'); 
     res.on('data', function(chunk) { 
      console.log(chunk); 
      callback(null, twiml); 
     }); 
    }); 

    req.write(postData); 
    req.end(); 

}; 

In postOptionspath: und auth: Werte für Ihr Konto Mailgun ersetzen.

Einführung Twilio Funktionen https://www.twilio.com/blog/2017/05/introducing-twilio-functions.html

Gebäude Anwendungen mit Twilio Funktionen https://support.twilio.com/hc/en-us/articles/115007737928-building-apps-with-twilio-functions

Verwandte Themen