Preciso de ajuda com Sendmail / Mail() no Google App Engine

  • Autor Autor BryCom
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
B

BryCom

Beta
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Buenas tardes, 😛irate:

He estado desarrollando un proyecto personal en Google App Engine. Sucede una cosa, que como ya muchos saben este espacio de Google tiene la función mail() desactivada del cual no soy capaz de hacer funcionar un script que tenía guardado desde hace mucho tiempo para hacer que mi sitio web me envié los mensajes de contacto a mi correo personal.

Yo me canse de inventar para hacer funcionar el script, pero nada de nada y desearía saber si alguno de ustedes me puede echar 1 manía por favor. Solo necesito al menos que funcione usando SMTP pero no sé cómo, estoy haciendo un proyecto para la universidad con motivos de educación y lo que he podido encontrar es Google App Engine / Ya ando establecido allí.

Este es mi archivo app.yaml (hace que funcione todos los archivos html y php, puedo instalar hasta plataformas como WordPress) yo mismo había buscado y copilado este código para poder instalar y hacer cualquier cosa. Puedo usar App Engine como Hosting definitivo de sitios web.

Inserir CODE, HTML ou PHP:
application: indigo-computer-#
version: #
runtime: php
api_version: 1

handlers:
- url: /(.*\.(gif|png|jpg|ico|js|css))
  static_files: \1
  upload: (.*\.(gif|png|jpg|ico|js|css))

- url: /(.*\.php)
  script: \1

- url: /(.*\.html)
  script: \1

- url: /
  script: index.php

skip_files:
- ^(.*/)?\.exe$
- ^(.*/)?\.zip$
- ^(.*/)?\.bat$
- ^(.*/)?\.sh$
- ^(.*/)?\.md$

Y este es el código del sendmail.php, con el que necesito ayuda:

Inserir CODE, HTML ou PHP:
<?
$_DEBUG = 0;
$_LISTA = array(
contacto => "CORREO"
);
$id = $_POST[_id];
$error = array();
if( $id ) {
$body = "";
foreach($_POST as $key => $value ) {
if( preg_match( "/^_/", $key ) || preg_match( "/(submit|imageField)/i", $key ) )
continue;
$value = chop( $value );
$key2 = preg_replace( "/_$/", "", $key );
$key2 = preg_replace( "/_/", " ", $key2 );
$key2 = strtoupper( $key2 );
if( preg_match( "/_$/", $key ) && ! $value ) {
array_push( $error, $key2 );
} elseif( $value ) {
$key2 .= preg_match( "/[\n\r]/", $value ) ? ":\n" : ": ";
$body .= "$key2$value\n\n";
}
}
$asunto = $_POST[Asunto_];
$email = $_POST[email];
$to = $_POST[_to] ? $_POST[_to] : $_LISTA[$id];
if( ! $asunto )
$asunto = $_POST[Asunto] ? $_POST[Asunto] : strtoupper($id[0]).substr($id,1);
if( ! $email || ! preg_match( "/[^@]+@([^.]+\.)+.{2,4}/", $email ) ) {
array_push( $error, "CORREO" );
}
$header = "De: $email\nX-Mailer: PHP/".phpversion();
if( $_DEBUG )
print "<pre>Para: $to\nSubject: $asunto\n$header\n\n$body</pre>";
else
mail( $to, $asunto, $body, $header );
if( sizeof( $error ) == 0 ) {
print <<<HTML
<p><span style="color:#0000cd;"><strong>Su mensaje ha enviado con &eacute;xito,</strong></span><span style="color: rgb(0, 0, 0);"> gracias por contactarnos, le responderemos lo m&aacute;s r&aacute;pido posible al correo procesado, </span><span style="color:#ff0000;">recuerde que no respondemos mensajes spam, lo bloqueamos.</span>
<br><br></p>
HTML;
} else {
$campos = implode( ", ", $error );
print <<<HTML
<p>
<b><font size="+1"><span style="color:#ff0000;">Corrija los campos:</span></font></b>
<br><br><span style="color:#a52a2a;"><b>$campos.</b></span><br><br>
</p>
HTML;
}
}
?>

Estaría muy agradecido si me pueden ayudar con este mini problema, buscando en Google había encontrado:

https://developers.google.com/appengine/docs/php/mail/

Pero la verdad que no entiendo nada de como adaptarselo a mi script.

Saludos y gracias por adelantado.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Has probado poner en el archivo index.php solo este codigo
Inserir CODE, HTML ou PHP:
mail( $to, $asunto, $body, $header );

por ejemplo:

mail('hola@hotmail.com','Mi asunto','Esto es una prueba','');

Bueno al llamar al index.php, de seguro se ejecutara y tendría que enviar un correo, ya que funciona como PHP ya que pueden instalar CMS como wordpress, debería de ser posible.

Pero bueno google dice esto:
Inserir CODE, HTML ou PHP:
use \google\appengine\api\mail\Message;

$image_content_id = '<image-content-id>';

try
{
  $message = new Message();
  $message->setSender("from@google.com");
  $message->addTo("to@google.com");
  $message->setSubject("Example email");
  $message->setTextBody("Hello, world!");
  $message->addAttachment('image.jpg', 'image data', $image_content_id);
  $message->send();
} catch (InvalidArgumentException $e) {
  // ...
}

Tienes que incluir la clase Message, crear un instancia y bueno ya lo demás lo sabes.

Saludos.
 
Voltar
Topo