J'ai un formulaire HTML à remplir, et je le veux afin que, lorsqu'ils cliquent sur le bouton d'envoi, il envoie simplement le courrier électronique, sans afficher son courrier électronique et leur demandant d'envoyer le message eux-mêmes.
Quand j'utilise:
<form action="MAILTO:[email protected]"... >
Cela ne fait qu'ouvrir une nouvelle fenêtre et remplir le corps de l'e-mail, mais je veux que celui-ci envoie simplement un e-mail.
Et y a-t-il un moyen de formater la sortie de ce à quoi le courrier ressemblera? Au lieu de simplement une liste des noms de champs et de la valeur entrée.
Merci.
En fait, j'utilise ASP C # pour envoyer mes emails maintenant, avec quelque chose qui ressemble à:
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form.Count > 0)
{
string formEmail = "";
string fromEmail = "[email protected]";
string defaultEmail = "[email protected]";
string sendTo1 = "";
int x = 0;
for (int i = 0; i < Request.Form.Keys.Count; i++)
{
formEmail += "<strong>" + Request.Form.Keys[i] + "</strong>";
formEmail += ": " + Request.Form[i] + "<br/>";
if (Request.Form.Keys[i] == "Email")
{
if (Request.Form[i].ToString() != string.Empty)
{
fromEmail = Request.Form[i].ToString();
}
formEmail += "<br/>";
}
}
System.Net.Mail.MailMessage myMsg = new System.Net.Mail.MailMessage();
SmtpClient smtpClient = new SmtpClient();
try
{
myMsg.To.Add(new System.Net.Mail.MailAddress(defaultEmail));
myMsg.IsBodyHtml = true;
myMsg.Body = formEmail;
myMsg.From = new System.Net.Mail.MailAddress(fromEmail);
myMsg.Subject = "Sent using Gmail Smtp";
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = true;
smtpClient.Credentials = new System.Net.NetworkCredential("[email protected]", "pward");
smtpClient.Send(defaultEmail, sendTo1, "Sent using gmail smpt", formEmail);
}
catch (Exception ee)
{
debug.Text += ee.Message;
}
}
}
Ceci est un exemple utilisant gmail en tant qu’expéditeur de messagerie smtp. Une partie de ce qui est ici n’est pas nécessaire, mais c’est la façon dont je l’utilise, car je suis sûr qu’il existe des moyens plus efficaces de la même manière.
Nous avons eu un défi similaire à résoudre hier et nous l'avons résolu à l'aide d'un script Google Apps!
La solution prend 5 minutes à mettre en œuvre et j'ai déjà documenté avec = instructions pas à pas: https://github.com/nelsonic/ html-form -send-email-via-google-script-sans-serveur
Déployez l'exemple de script en tant que script Google Spreadsheet APP: google-script-just-email.js
rappelez-vous pour régler le
TO_ADDRESS
dans le script, là où vous voulez que les courriels soient envoyés.
et copiez le URL de l’APP afin que vous puissiez l’utiliser à l’étape suivante lorsque vous publish le script.
action
sur l'URL de l'applicationUtilisation du fichier exemple html
: index.html crée un formulaire de base.
rappelez-vous pour coller votre URL de l'APP dans le formulaire
action
dans le formulaire HTML.
Ouvrez le formulaire HTML dans votre navigateur, entrez des données et envoyez-les!
Soumettez le formulaire. Vous devriez voir une confirmation de son envoi:
Ouvrez la boîte de réception pour l'adresse e-mail que vous avez définie ( ci-dessus)
Tout à ce sujet est personnalisable, vous pouvez facilement style/thème le forme avec votre favori [~ # ~] css [~ # ~] Bibliothèque et Store les données soumises dans un Google Spreadsheet pour l'analyse rapide.
Les instructions complètes sont disponibles sur GitHub :
https://github.com/nelsonic/ html-form-send-email-via-google-script-sans-serveur
Vous faites sens, mais vous semblez mal comprendre le concept d'envoi de courriels.
Le code HTML est analysé côté client, tandis que le courrier électronique doit être envoyé à partir du serveur. Vous ne pouvez pas le faire en HTML pur. Je suggèrerais d'écrire un script PHP) qui traitera de l'envoi du courrier électronique pour vous.
Fondamentalement, au lieu de MAILTO, l'action de votre formulaire devra pointer vers ce script PHP. Dans le script, récupérez les valeurs transmises par le formulaire (en PHP, elles sont disponibles via le $_POST
Superglobal) et utilisez la fonction d'envoi de courrier électronique (mail()
).
Bien entendu, cela peut également être fait dans d'autres langues côté serveur. Je donne une solution PHP parce que PHP est la langue avec laquelle je travaille.
Un exemple de code simple:
form.html:
<form method="post" action="email.php">
<input type="text" name="subject" /><br />
<textarea name="message"></textarea>
</form>
email.php:
<?php
mail('[email protected]', $_POST['subject'], $_POST['message']);
?>
<p>Your email has been sent.</p>
Bien sûr, le script devrait contenir des mesures de sécurité, telles que vérifier si les valies $ _POST sont disponibles, ainsi que des en-têtes de courrier électronique supplémentaires (courrier électronique de l'expéditeur, par exemple), ce qui constitue peut-être un moyen de traiter l'encodage des caractères - mais c'est aussi complexe pour un exemple rapide;).
Je ne sais pas ce que vous voulez faire est possible. À ma connaissance, l'envoi d'un courrier électronique à partir d'un formulaire Web nécessite une langue côté serveur pour communiquer avec un serveur de messagerie et envoyer des messages.
Utilisez-vous PHP ou ASP.NET?