Vbvsphp mailer ou comment envoyer un mail sans winsock ni serveur smtp

Description

Voici un exemple d'utilisation de la commande Mail() PHP contrôlée par VB.

Les arguments (adresse e-mail, objet et message) sont passés à la l'url de cette manière par VB de façon à procéder comme un formulaire :

http://monsite.com/mail.php?email=monadresse@monfai.com&objet=Le sujet de mon message&msg=Le texte de mon message que j'envoie ici...

Il est évident que le code à ses limites, en voici quelques exemples :

- Les caractères spéciaux peuvent mal être interprétés (&, #, etc...)
- Comme le code PHP envoie le message en mode Text/HTML vous devez taper <br> pour avoir un retour à la ligne dans votre texte, etc...
- Ce code pour ceux qui ont les esprits rebelles pourrait servir facilement de Mailbomber mais sachez que quasi tous les FAI actuels ont fixé quotas d'utilisation de la fonction Mail() par compte et donc en exemple chez Free si plus 1'000 mails sont envoyés par semaine, votre compte sera bloqué, donc ce code est à utiliser de manière pondérée svp.
- la partie Mail From: que l'on peut ajouter dans le script PHP n'est pas configurable dans tous les cas (en principe, la'adresse d'expédition sera de ce style moncompteouj'aimonscript@faidemonscript.com
- Votre adresse IP est quand même loggée (pas de chance...)

Source / Exemple :


Option Explicit

Private Sub Command1_Click()

If Text1.Text = "" Then
    MsgBox "Vous devez spécifier une adresse pour le script PHP !", vbInformation
    Text1.SetFocus
    Exit Sub
End If

If Text2.Text = "" Then
    MsgBox "Vous devez spécifier une adresse E-Mail !", vbInformation
    Text2.SetFocus
    Exit Sub
End If

If Text3.Text = "" Then
    MsgBox "Vous devez donner un objet à votre E-Mail !", vbInformation
    Text3.SetFocus
    Exit Sub
End If

If Text4.Text = "" Then
    MsgBox "Vous devez écrire votre message !", vbInformation
    Text4.SetFocus
    Exit Sub
End If

Dim strURL As String
Dim strMail As String
Dim strMailState As String
Dim strObjet As String
Dim strMsg As String
Dim strCMD As String

strURL = Trim(Text1.Text)
'CODE PHP lié au projet VB
'
'<?
'$err="1";
'
'if (isset($email) && $email != "")  {
'    if (isset($objet) && $objet != "") {
'        if (isset($msg) && $msg!="") {
'            $err="0";
'        }
'    }
'}
'
'if ($err=="0") {
'    $entete = "Content-Type: text/html; charset=iso-8859-1\n";  // Envoie l'E-Mail en mode Texte et/ou HTML
'    $entete .= "X-priority:1";                  // Envoie l'E-Mail en priorité Haute
'    if (@mail($email, $objet, $msg, $entete) == true) {
'        echo "done";
'    }
'    else {
'        echo "error";
'    }
'}
'else {
'    echo "welcome";
'}
'?>
strMail = Trim(Text2.Text)
strObjet = Trim(Text3.Text)
strMsg = Trim(Text4.Text)
strCMD = strURL & "?email=" & strMail & "&objet=" & strObjet & "&msg=" & strMsg

strMailState = LirePage.LirePage(strCMD)

If strMailState = "done" Then
    MsgBox "E-Mail envoyé !", vbExclamation
ElseIf strMailState = "error" Then
    MsgBox "Echec de l'envoi de l'E-Mail !", vbExclamation
ElseIf strMailState = "welcome" Then
    MsgBox "Aucun paramètre d'E-Mail configuré !", vbExclamation
Else
    MsgBox "Erreur !" & vbCrLf & strMailState, vbExclamation
End If

End Sub

Conclusion :


Tout est dans le ZIP mais pour les as du copier/coller voici la liste des composants :

- 4 Textbox (Text1=URL du script PHP, Text2=Adresse E-Mail, Text3=Objet, Text4=Message)

- 1 bouton pour envoyer le mail (Command1)

- le module LirePage

Laissez vos commentaires, merci.

ps: je sais bien que d'autre sources existent mais je voulais vous faire profiter de la mienne :-)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.