Godaddy phpmailer smpt配置

时间:2017-02-10 12:34:26

标签: php phpmailer

我们在godaddy服务器上有一个网站。我们有联系表格。当用户填写表单时,首先我们应该发送邮件到我们的info @ oursite,之后我们应该从我们的info @ oursite发送邮件给用户的邮件。我试过的代码如下:

$name = $_POST['name'];
$email = $_POST['email'];


$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug  = 2;
$mail->port = 25;
$mail->Host = 'localhost';
$mail->Username = 'username@example.com';
$mail->Password = 'password';
$mail->addAddress($email, $name);
$mail->subject = 'Subject';
$mail->MsgHTML('mail içeriği');


if ($mail->Send()){

以下输出:

enter image description here

似乎邮件已发送,但它从未传递过邮件。 我尝试了很多东西;

$ mail-> SMTPAuth = true;

端口25,80,3535,465(使用ssl), tls,ssl身份验证,

我该怎么办?我应该尝试更多,任何想法?

1 个答案:

答案 0 :(得分:1)

首先,您使用的是非常旧版本的PHPMailer; get the latest

我不知道你的代码在哪里,但你有一些重要属性的错误 - 我建议你将代码基于PHPMailer提供的示例。特别是,subject应为Subjectport应为Port。发送到localhost时,您不需要用户名或密码,因此您无需进行设置。同样,Port默认为25,因此您无需进行设置。

你没有指定一个发件人地址,看起来你传递给addAddress的任何地址都是无效的,所以你发送一条从无人发送给任何人的信息 - 毫不奇怪它不会去任何地方!

看起来你的邮件正文是土耳其语(?),它不能用于默认的ISO-8859-1字符集,所以我建议你通过设置$mail->CharSet = 'UTF-8';切换到UTF-8。

在调用addAddress时检查您的返回值,以确保在尝试发送之前提交的值是有效的。

解决了这些问题:

$name = $_POST['name'];
$email = $_POST['email'];

$mail = new PHPMailer;
if (!$mail->addAddress($email, $name)) {
  die('Invalid email address');
}
$mail->isSMTP();
$mail->CharSet = 'UTF-8';
$mail->SMTPDebug = 2;
$mail->Host = 'localhost';
$mail->Subject = 'Subject';
$mail->msgHTML('mail içeriği');
$mail->setFrom('me@example.com', 'My Name');    

if ($mail->send()) {
    echo 'Sent';
} else {
    echo 'Error: '.$mail->Errorinfo;
}