Rubrik: HTML/Internet/Netzwerk · HTML/Email | VB-Versionen: VB4, VB5, VB6 | 21.01.04 |
eMails per PHP-Skript versenden Einfache Möglichkeit, EMails zu versenden - ohne Angabe eines SMTP-Servers. | ||
Autor: Jan Schöppach | Bewertung: | Views: 25.755 |
www.jan-schoeppach.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Sie wollen in Ihrem Programm ein Kontaktfromular einbauen, das per eMail verschickt werden soll, aber von beliebiger eMail-Adresse aus senden? Dann kombinieren Sie doch einfach PHP mit Visual Basic.
Um das nachfolgende Beispiel auszuprobieren, werden vier TextBoxen, ein CommandButton, sowie ein WebBrowser-Control benötigt:
- txtFrom: Angabe der Absender-Adresse
- txtTo: Angabe der Empfänger-Adresse
- txtSubject: Angabe des Betreffs
- txtMessage: Angabe der Nachricht
- Command1: Zum Abschicken der EMail
- WebBrowser: Bindeglied zwischen PHP-Skript und Visual Basic (dient gleichzeitg der Statusabfrage des Sendevorgangs)
Die TextBox "txtMessage" stellen Sie auf "Multiline = True". Das WebBrowser-Control selbst kann unsichtbar auf der Form sein (Visible = False).
Nun zum Code:
Als Erstes erstellen Sie eine PHP-Datei (am besten mit dem Editor und einfach als email.php abspeichern) mit folgendem Inhalt:
<?php mail($emp, $betr, $msg, "From: $abs \nReply-To: $mail\nX-Mailer: PHP/" . phpversion()); echo "eMail wurde versand"; ?>
Diese Datei laden Sie auf Ihren PHP-fähigen Webspace hoch.
(Wenn Sie diese Möglichkeit nicht haben, können Sie testweise auch meine "email.php" nehmen. Die Datei liegt auf "http://free.pages.at/janschoeppach/email.php")
Nun der VB Quellcode:
Private Sub Command1_Click() Dim sURL As String Screen.MousePointer = 11 ' Übergabe der Daten an das PHP-Script ' URL ggf. anpassen! sURL = "http://free.pages.at/janschoeppach/" WebBrowser1.Navigate sURL & "email.php?" & _ "abs=" & txtFrom.Text & _ "&emp=" & txtTo.Text & _ "&betr=" & txtSubject.Text & _ "&msg=" & txtMessage.Text End Sub
' Status abfragen Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant) Dim sContent As String ' Prüfung, ob die Mail verschickt wurde With WebBrowser1.Document.documentElement sContent = .outerHTML End With If InStr(sContent, "eMail wurde versand") > 0 Then MsgBox "Die eMail wurde erfolgreich verschickt.", _ vbExclamation Else MsgBox "Ein Fehler ist beim Senden aufgetreten!" & _ "Bitte überprüfen Sie die Internetverbindung", _ vbCritical End If Screen.MousePointer = 0 End Sub