当前位置: 首页 > 知识库问答 >
问题:

使用SMTP发送电子邮件[重复]

郎恺
2023-03-14
<?php


$smtp=$_GET["smtp"];
$youremail= $_GET["youremail"];   
$emailpassword=$_GET["emailpassword"]; 
$companyemail=$_GET["companyemail"]; 
$messagetitle= $_GET["messagetitle"];
$messagetext=$_GET["messagetext"];

//this is a path to PHP mailer class you have dowloaded

include("class.phpmailer.php");

$emailChunks = explode(",", $companyemail);
for($i = 0; $i < count($emailChunks); $i++){
//  echo "Piece $i =  <br />";


$mail = new PHPMailer();

$mail->IsSMTP();
$mail->SMTPDebug  = 1; // errors and messages



//$mail->SMTPSecure = "tls";                 // sets the prefix to the servier

$mail->Port       = 587;  

$mail->Host = "$smtp";

$mail->SMTPAuth = true; // turn on SMTP authentication

$mail->Username = "$youremail"; // SMTP username

$mail->Password = "$emailpassword"; // SMTP password

$mail->From = "$youremail"; //do NOT fake header.

$mail->FromName = "$youremail";

$mail->AddAddress("$emailChunks[$i]"); // Email on which you want to send mail

$mail->AddReplyTo("$emailpassword", "Reply to"); //optional

$mail->IsHTML(true);

$mail->Subject = "$messagetitle";

$mail->Body = "$messagetext";

if(!$mail->Send())
{
echo $mail->ErrorInfo;
}else{
echo "email was sent";

}

}


?>

我得到的错误是:无效地址:mysmtppassxxxxSMTP->错误:连接到服务器失败:连接超时(110)


SMTP错误:无法连接到SMTP主机。SMTP错误:无法连接到SMTP主机

当我执行var_dump($email)时,我得到

object(PHPMailer)#1 (53) {
  ["Priority"]=>
  int(3)
  ["CharSet"]=>
  string(10) "iso-8859-1"
  ["ContentType"]=>
  string(9) "text/html"
  ["Encoding"]=>
  string(4) "8bit"
  ["ErrorInfo"]=>
  string(0) ""
  ["From"]=>
  string(18) "me@gmail.com"
  ["FromName"]=>
  string(18) "me@gmail.com"
  ["Sender"]=>
  string(0) ""
  ["Subject"]=>
  string(4) "test"
  ["Body"]=>
  string(10) "my message"
  ["AltBody"]=>
  string(0) ""
  ["WordWrap"]=>
  int(0)
  ["Mailer"]=>
  string(4) "smtp"
  ["Sendmail"]=>
  string(18) "/usr/sbin/sendmail"
  ["PluginDir"]=>
  string(0) ""
  ["ConfirmReadingTo"]=>
  string(0) ""
  ["Hostname"]=>
  string(0) ""
  ["MessageID"]=>
  string(0) ""
  ["Host"]=>
  string(14) "smtp.gmail.com"
  ["Port"]=>
  int(587)
  ["Helo"]=>
  string(0) ""
  ["SMTPSecure"]=>
  string(3) "ssl"
  ["SMTPAuth"]=>
  bool(true)
  ["Username"]=>
  string(18) "me@gmail.com"
  ["Password"]=>
  string(18) "me@gmail.com"
  ["Timeout"]=>
  int(10)
  ["SMTPDebug"]=>
  int(1)
  ["SMTPKeepAlive"]=>
  bool(false)
  ["SingleTo"]=>
  bool(false)
  ["SingleToArray"]=>
  array(0) {
  }
  ["LE"]=>
  string(1) "
"
  ["DKIM_selector"]=>
  string(9) "phpmailer"
  ["DKIM_identity"]=>
  string(0) ""
  ["DKIM_domain"]=>
  string(0) ""
  ["DKIM_private"]=>
  string(0) ""
  ["action_function"]=>
  string(0) ""
  ["Version"]=>
  string(3) "5.1"
  ["smtp:private"]=>
  NULL
  ["to:private"]=>
  array(1) {
    [0]=>
    array(2) {
      [0]=>
      string(18) "jvkrneta@yahoo.com"
      [1]=>
      string(0) ""
    }
  }
  ["cc:private"]=>
  array(0) {
  }
  ["bcc:private"]=>
  array(0) {
  }
  ["ReplyTo:private"]=>
  array(1) {
    ["me@gmail.com"]=>
    array(2) {
      [0]=>
      string(18) "me@gmail.com"
      [1]=>
      string(8) "Reply to"
    }
  }
  ["all_recipients:private"]=>
  array(1) {
    ["joovkrneta@yahoo.com"]=>
    bool(true)
  }
  ["attachment:private"]=>
  array(0) {
  }
  ["CustomHeader:private"]=>
  array(0) {
  }
  ["message_type:private"]=>
  string(0) ""
  ["boundary:private"]=>
  array(0) {
  }
  ["language:protected"]=>
  array(0) {
  }
  ["error_count:private"]=>
  int(0)
  ["sign_cert_file:private"]=>
  string(0) ""
  ["sign_key_file:private"]=>
  string(0) ""
  ["sign_key_pass:private"]=>
  string(0) ""
  ["exceptions:private"]=>
  bool(false)
}

共有1个答案

浦琪
2023-03-14

$mail->addAddress()节的语法无效。

将其从$mail->AddAddress(“$emailchunks[$i]”);更改为$mail->AddAddress(“${emailchunks[$i]}”);

基本上,解析器不会识别下标不是字符串的一部分。

 类似资料:
  • 我正在使用C#使用SMTP和gmail服务器发送电子邮件。 下面是我用于发送电子邮件的代码。我遇到了一些错误,即。 SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:需要5.5.1身份验证。 我做错了什么?我如何使用gmail发送电子邮件。

  • 你好;我正在使用s.o上给出的答案进行smtp邮件;(如果搜索,相信这是第一个结果) 但我仍然没有收到邮件;任何人都可以帮助发现任何错误或提供替代解决方案吗?我已经使用了内置的邮件程序,但它没有被认证,请参阅 -

  • 我在ASP. Net Core中工作,并尝试从gmail使用smtp客户端发送电子邮件。有以下代码,但不起作用也看过以下帖子,但不起作用http://dotnetthoughts.net/how-to-send-emails-from-aspnet-core/ 它会跟踪错误 系统NotSupportedException:SMTP服务器不支持身份验证

  • 问题内容: 问题答案: $config = Array( ‘protocol’ => ‘smtp’, ‘smtp_host’ => 'ssl://smtp.googlemail.com’, ‘smtp_port’ => 465, ‘smtp_user’ => ‘xxx’, ‘smtp_pass’ => ‘xxx’, ‘mailtype’ => ‘html’, ‘charset’ => ‘iso-8

  • 我使用的PHPMailer表格在这里找到。 从网站下载的示例是“接触-3”,在引导主题中使用PHPMailer通过gmail发送SMTP电子邮件。当我使用“接触-1”时,它完全适用于我的托管域电子邮件地址,但SMTP版本适用于gmail地址,联系人表单不会提交。 在下面的代码中,我更改了以下行以添加我的gmail地址和gmail密码: 任何关于使用给定信息进行此工作的帮助都将不胜感激-提前感谢!

  • 下面是错误和超时异常。 输入代码: 调试SMTP:正在尝试连接到主机“SMTP.gmail.com”,端口587,isSSL true Exceptioninthread“main”java。lang.RuntimeException:com。太阳邮政util。MailConnectException:无法连接到主机,端口:smtp。gmail。com,587;超时-1。