2017-02-10 49 views
0

我们有一个关于godaddy服务器的网站。我们有一个联系表格。当用户填写表单时,首先我们应该发送邮件到我们的info @ oursite,之后我们应该从我们的info @ oursite发送邮件给用户的邮件。下面我试图代码:Godaddy phpmailer smpt配置

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


$mail = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPDebug = 2; 
$mail->port = 25; 
$mail->Host = 'localhost'; 
$mail->Username = '[email protected]'; 
$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认证,

我该怎么办?我应该尝试更多什么想法?

+0

你审查出来的东西在屏幕截图,或者是,你实际上并不在任何'为了把问题的一部分:'地址?顺便说一句,你应该在你的主机上更改你的SMTP密码,因为你把它放在你的帖子中。 – Iskar

+0

谢谢我改变了我的通行证,我也删除了一些数据,如'到:'' –

回答

1

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

我不知道你在哪里得到你的代码,但你有一些重要属性的情况错误 - 我建议你将代码基于PHPMailer提供的示例。特别是,subject应该是Subjectport应该是Port。发送到本地主机时,您不需要用户名或密码,因此您无需设置它们。同样,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('[email protected]', 'My Name');  

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

感谢您的回复。现在它发送邮件,但有一点问题。当邮件转到hotmail时,它会掉到垃圾邮件文件夹中,并且有一个警告,例如'gmail/hotmail无法确认此邮件实际上来自example.com“。我使用土耳其语,当我做UTF-8时,一些字符是准确的,但有些字符不准确。有什么可以出错的呢? –

+0

它进入垃圾邮件是一个单独的问题,在这里有很多答案。 UTF-8数据有很多可能出错的地方 - 搜索它。 – Synchro

+0

经过一些研究,我发现我的UTF-8问题的解决方案。在class.phpmailer.php类中,我将“public $ CharSet ='iso-8859-1'”一行更改为“public $ CharSet ='iso-8859-9'”。当你这样做时,你不需要设置“$ mail-> CharSet ='UTF-8'”了。 –