2010-03-08 5 views
8

Je travaillais sur un projet pour soumettre un formulaire à partir d'un courriel. Le scénario est celui-ci. Nous enverrons un formulaire à la liste des courriels où le client doit remplir le formulaire et une fois qu'il a été envoyé, le formulaire doit être soumis et le serveur doit être en mesure de récupérer les valeurs fournies par la personne qui remplit le formulaire. essayé, il ne considérait pas le bouton Soumettre en tant que soumettre et aucune action n'est en cours. Quelqu'un peut-il m'aider à résoudre cela. Merci d'avance.Soumettre un formulaire à partir d'un courriel

+0

Qu'est-ce que vous écrivez ceci dans? Avez-vous du code pour démontrer votre problème? Pas grand chose que nous puissions faire pour aider sans plus d'informations. – JasCav

+3

Vous menez une bataille perdue ici. Un grand nombre de clients de messagerie restreindra considérablement le balisage que vous pouvez inclure dans un e-mail HTML au point où de nombreuses fonctionnalités sont impossibles. GMail, Yahoo! Mail et Hotmail sont particulièrement difficiles. Je recommande d'héberger le formulaire sur un serveur web et de prouver un lien depuis l'email. Vous perdez votre temps à essayer d'obtenir un formulaire à partir d'un e-mail. – Asaph

+0

Le cas le plus impressionnant est le nouveau Outlook. Suppression totale de l'entrée de texte/zone de texte et du bouton. – Shikiryu

Répondre

7

Les formulaires HTML et le code côté client sont généralement limités à partir de la plupart des clients de messagerie. Il s'agit d'un vecteur d'attaque évident et, par conséquent, vos capacités sont limitées en ce qui concerne le courrier électronique basé sur HTML.

Je recommanderais de fournir un lien vers une page Web.

2

soumet un formulaire par courrier électronique est possible, Le code i écrit à envoyer un courrier électronique (en utilisant PHP SwiftMailer),

//Create the Transport 
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl") 
    ->setUsername('[email protected]') 
    ->setPassword('*****') 
    ; 
//Create the Mailer using your created Transport 
$mailer = Swift_Mailer::newInstance($transport); 
//Create a message 
$message = Swift_Message::newInstance('Fill the form') 
    ->setFrom(array('[email protected]' => 'Harry')) 
    ->setTo(array('[email protected]','[email protected]')) 
    ->setBody('<html>' . 
      ' <head></head>' . 
      ' <body>'. 
      ' <form action="http://www.our_domail.com/index.php" method="get">'. 
      ' <label>Name: </label><input type="input" id="name" name="name"/><br/>' . 
      ' <label>phone: </label><input type="input" id="phone" name="phone" /><br/>'. 
      ' <label>About you: </label><br/>'. 
      ' <textarea id="about" name="textb"></textarea> <input type="submit" value="submit" />'. 
      ' </form>'. 
      ' </body>' . 
      '</html>', 
      'text/html') 
    ; 
    //Send the message 
    if ($mailer->send($message)) 
    { 
    echo "Sent\n"; 
    } 
    else 
    { 
    echo "Failed\n"; 
    } 

Dans la boîte aux lettres je suis arrivé la forme, ce qui sur la présentation affiche des messages comme You are submitting information to an external page. Are you sure? et Although this page is encrypted, the information you have entered is to be sent over an unencrypted connection and could easily be read by a third party. Are you sure you want to continue sending this information? En cliquant sur Continuer, il est publié sur mon serveur avec des données dans le formulaire. Je ne suis pas sûr que nous pouvons utiliser des validations javascript ou des feuilles de style CSS dans nos formulaires. Note: This was tested in Gmail server and i don't know about other mail servers..

En fait, cela a fonctionné pour moi, espérons que cela vous a aidé aussi ..

+1

Apparemment ne fonctionnera pas dans Outlook: http://www.campaignmonitor.com/resources/will-it-work/forms/ –