Вот мой PHP-скрипт, который просто отправляет письмо …
<?php
$headers = "From: [email protected]" . "\r\n";
mail("[email protected]", $_GET["subject"], $_GET["body"], $headers);
?>
Я иду на этот URL в моем браузере Chrome …
http://www.myserver.com/myPHPScript.php?subject=Test Email&body=This is a test email
…и он успешно выполняет скрипт php и отправляет электронное письмо.
Теперь проблема — я пытаюсь повторить это в C #, выполнив следующие действия …
// Start this method by calling StartCoroutine (SendMail());
public IEnumerator SendMail() {
string body = "This is a test email";
string subject = "Test Email";
WWW www = new WWW("http://www.myserver.com/myPHPScript.php?subject=" + subject + "&body=" + body);
yield return www;
}
Однако это не работает. Как я могу получить этот C # скрипт для идеальной эмуляции перехода на URL, как в моем браузере Chrome.
Скорее всего, ваша тема и / или тело не являются URL-адресами. WWW-класс Unity предоставляет способ сделать это.
WWW.EscapeURL метод
так что просто измените эту строку в вашем коде
WWW www = new WWW(WWW.EscapeURL("http://www.myserver.com/myPHPScript.php?subject=" + subject + "&body=" + body));
и это должно работать.
Я должен был закодировать предмет и тело, чтобы избежать символов. (Например, «» заменяется на% 20)
Я использовал эту ссылку: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm?state=none&origval = www.google.com% 2Fffds.php% 3Fname% 3Не% 3Agen&прил = на
Тогда на стороне php вещей — я использовал rawurldecode(string)
который преобразует шестнадцатеричные символы обратно в их литералы