我正在使用php邮件程序类向我的客户发送电子邮件。但它失败了,错误:
Language string failed to load: recipients_failed example@gmail.com
如果我将$ email_to和$ email_from的值更改为同一个电子邮件地址,则电子邮件会成功发送
这是我发送电子邮件的代码
$email_to = "example@gmail.com";
$email_subject = "bla bla";
$email_from = 'info@domain.com.vn';
$email_message = "hello there";
$mail = new PHPMailer();
$mail->CharSet="UTF-8";
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "mail.domain.com.vn"; // SMTP server
$mail->From = $email_from;
$mail->AddAddress($email_to);
$mail->AddReplyTo($email_from);
$mail->Subject = $email_subject;
$mail->WordWrap = 100;
$mail->Body = $htmlBody;
$mail->isHTML(true);
$mail->AltBody = $email_message;
if(!$mail->Send()){
echo $mail->ErrorInfo;
}
因此,除非我将$ email_to更改为info@domain.com.vn
,否则它将始终报告错误谢谢,
答案 0 :(得分:1)
注意:请将SMTP服务器设置更改为您自己的服务器。
$your_email = "info@example.com";
$your_smtp = "mail.example.com";
$your_smtp_user = "info@example.com";
$your_smtp_pass = "example_password";
$your_website = "http://example.com";
//get contact form details
$name = $_POST['name'];
$email = $_POST['email'];
$url = $_POST['url'];
$comments = $_POST['comments'];
$response="Name: $name\nContents:\n$comments\n";
$mail = new PHPmailer();
$mail = $mail->SetLanguage("en", "phpmailer/language");
$mail->From = $your_email;
$mail->FromName = $your_website;
$mail->Host = $your_smtp;
$mail->Mailer = "smtp";
$mail->Password = $your_smtp_pass;
$mail->Username = $your_smtp_user;
$mail->Subject = "$your_website feedback";
$mail->SMTPAuth = "true";
$mail->Body = $response;
$mail->AddAddress($your_email,"$your_website admin");
$mail->AddReplyTo($email,$name);
echo "<p>Thanks for your feedback, <em>$name</em>! We will contact you soon!</p>";
if (!$mail->Send()) {
echo "<p>There was an error in sending mail, please try again at a later time</p>";
}
$mail->ClearAddresses();
$mail->ClearAttachments();
答案 1 :(得分:0)
我认为您需要设置语言文件的语言和路径,如下所示:
$mail->SetLanguage ("de", "./phpmailer/");
如果这不能解决。确保语言文件确实存在于该文件夹中(如果可能,请使用相对路径)并且在Linux下:文件应该与php脚本具有相同的所有者并且正确(读取文件权限)。