php - 如何制作一个功能性的 PHP 联系表格,将电子邮件发送到将在 ftp 服务器上发布的网站上的@outlook.com 帐户?
问题描述
我正在建立一个网站,该网站有一个 php 联系表格,该表格将在@outlook.com 地址上发送一封电子邮件。网站将在 ftp 服务器上发布,但在此之前我将其发布在这个免费的https://www.000webhost.com/上,因此我可以测试联系表,但它不起作用。我在某处读到 php mail() 函数不适用于 smtp,所以我尝试使用 PHPMailer,正如我在此处的一些建议中发现的那样(尝试使用在 Microsoft 的 SMTP 服务器上配置的电子邮件地址通过 PHP 发送电子邮件(@live. com、@outlook.com 等))但它也无法正常工作,或者我可能没有正确执行它,因为我不太了解它。代码是在不使用 PHPMailer 的情况下编写的:
PHP:
<?php
if ($_POST["submit"]) {
if (!$_POST['name']) {
$error="<br />Please enter your name";
}
if (!$_POST['email']) {
$error.="<br />Please enter your email address";
}
if (!$_POST['message']) {
$error.="<br />Please enter a message";
}
if ($_POST['email']!="" AND !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) {
$error.="<br />Please enter a valid email address";
}
if ($error) {
$result='<div class="alert alert-danger"><strong>There were error(s)in your form:</strong>'.$error.'</div>';
} else {
if (mail("mymail@outlook.com", "message from website!", "Name: ".$_POST['name']."Email: ".$_POST['email']."message: ".$_POST['message'])) {
$result='<div class="alert alert-success"><strong>Thank you!</strong> I\'ll be in touch.</div>';
} else {
$result='<div class="alert alert-danger">Sorry, there was an error sending your message. Please try again later.</div>';
}
}
}
?>
HTML:
<div>
<?php echo $result; ?>
<form method="POST" enctype="multipart/form-data ">
<div class="form-group ">
<label><h3>Your name:</h3></label>
<input name="name" type="text " id="exampleInputName" class="form-control" placeholder="Name" value="<?php echo $_POST['name']; ?>">
</div>
<div class="form-group ">
<label><h3>Your e-mail:</h3></label>
<input name="email" type="email " id="exampleInputEmail" class="form-control" placeholder="name@email.com" value="<?php echo $_POST['email']; ?>">
</div>
<div class="form-group ">
<label><h3>Message:</h3></label>
<textarea name="message" class="form-control " rows="5" placeholder="Your message... " value="<?php echo $_POST['message']; ?>"></textarea>
</div>
<div class="col text-right">
<div class="form-group ">
<button class="button" type= "submit" name="submit" value="Submit">send</button>
</div>
</div>
</form>
</div>
我尝试使用 PHPMailer 的另一个单独代码看起来像这样,基本上是从这个链接中复制的,获取自定义 php 联系表单以发送电子邮件到交换 365 帐户 :
<?php
if ($_POST["submit"]) {
include("PHPMailer-master/class.PHPMailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "localhost";
$mail->SMTPAuth = false;
$mail->Username = "mymail@outlook.com"; #or do i put my account for webhostapp?
$mail->Password = "my_password_for_outlook";
$mail->From = 'https://webpage.000webhostapp.com/';
$mail->FromName = $_POST['name'];
$mail->AddAddress('mymail@outlook.com');
$mail->IsHTML(true);
$mail->Subject = 'Subject line goes here';
$mail->Body = $_POST['message'];
$mail->AltBody = $_POST['message'];
$mail->Send();
}?>
解决方案
推荐阅读
- sql-server - Apache/Xampp 的 SQL Server 连接问题
- java - How to get the value of an enum using @Field from beanio
- python-3.x - Pandas Read Excel function convert index to list
- python - Associating two item in a list
- html - 如何禁用Angular材料中的第二个mat-list-item
- android - android intent setFlags issue
- html - How to put main content under a fixed header?
- c# - 需要正则表达式来提取月、日、时间,即 Sep 14 16:08
- c# - How to generate guid from DateTime?
- google-apps-script - 单元格是一个复选框