php,从任何电子邮件地址发送电子邮件

php,从任何电子邮件地址发送电子邮件,php,email,Php,Email,电子邮件将被发送给人们——这是一件非常平常的事情 但发送电子邮件的地址会不时变化。邮件的发送地址将作为站点管理员的输入 问题是,从gmail帐户发送电子邮件需要某种类型的编码,用yahoo发送电子邮件需要另一种编码等等 在php中,从任何电子邮件地址发送电子邮件的方式是什么 有没有这样的脚本可以免费使用?基本上,你可以设置你的邮件头,其中包含谁发送的电子邮件地址。幸运的是,这大部分会以垃圾邮件的形式出现(关键字:SPF、DNS PTR等) 最简单的方法是为您要使用的每个帐户(gmail、yaho

电子邮件将被发送给人们——这是一件非常平常的事情

但发送电子邮件的地址会不时变化。邮件的发送地址将作为站点管理员的输入

问题是,从gmail帐户发送电子邮件需要某种类型的编码,用yahoo发送电子邮件需要另一种编码等等

在php中,从任何电子邮件地址发送电子邮件的方式是什么


有没有这样的脚本可以免费使用?

基本上,你可以设置你的邮件头,其中包含谁发送的电子邮件地址。幸运的是,这大部分会以垃圾邮件的形式出现(关键字:SPF、DNS PTR等)

最简单的方法是为您要使用的每个帐户(gmail、yahoo等等)创建类,然后使用工厂模式保持代码干净

最好的选择是:使用smtp进行身份验证。这是最受支持的标准,您只需为不提供smtp身份验证的服务编写解决方案

更新

我不知道如何帮助你。您希望从每个域发送邮件,而不将其标记为垃圾邮件,只需提供一个“邮件发件人(在此处输入电子邮件地址)”输入字段和一个完整的神奇的do it everything脚本包。但却不知道邮件是如何工作的


专业提示:阅读SMTP,了解发送邮件的工作原理。

在没有身份验证的情况下发送电子邮件

<?php
$to      = 'nobody@whateverdomain.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@whateverdomain.com' . "\r\n" .
    'Reply-To: webmaster@whateverdomain.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

你的代码/脚本将保持不变,与你的发件人电子邮件地址无关,所以不用担心…要使用gmail地址,你需要smpt。我认为其他电子邮件提供商有自己的规则。。。想想phpMailer,一个著名的邮件脚本,只有mail_-to功能还没有完善,我认为是出于安全(?)或其他原因。。我说的对吗?我建议你也读一下:@Klaus Byskov Hoffmann,充满了行话。。你能帮个忙吗。。要点:如果你想确保邮件总是到达,没有可行的方法去做你要做的事情。为什么?因为除非你采取正确的措施,否则你的电子邮件最终会被放入垃圾邮件文件夹。当你不知道你将使用哪个发件人地址时,你将如何采取正确的措施?如果您只允许某些发件人域,您肯定会成功,但您要求的是从任何地址发送的方式。简而言之,如果你的邮件没有被垃圾邮件过滤器屏蔽,你就无法从任何域发送。任何现成的脚本都会非常好。如果我知道有这么多的电子邮件提供商,我会附加一个脚本。此外,还应考虑更新网络邮件。使用smtp。以及不提供smtp的服务的代码。我应该为多少个服务提供smtp?我怎么知道所有这些服务?有现成的脚本吗?第一种方法能确保像第二种方法一样发送电子邮件吗?确保!?上述方法可以发送电子邮件。发送电子邮件的方法不同。第一种方法使用来自操作系统的sendmail或类似服务。第二种和第三种方法是通过SMTP发送电子邮件。与第一次尝试相比,它们不太可能被标记为垃圾邮件(假设SPF记录对于服务器IP也是正确的)。
<?php
 require_once "Mail.php";

 $from = "Name Surname <sender@yourdomain.com>";
 $to = "Name Whatever <recipient@example.com>";
 $subject = "Subject!";
 $body = "Hi,\n\nHow are you?";

 $host = "mail.yourdomain.com";
 $username = "smtp_username";
 $password = "smtp_password";

 $headers = array ('From' => $from,
   'To' => $to,
   'Subject' => $subject);
 $smtp = Mail::factory('smtp',
   array ('host' => $host,
     'auth' => true,
     'username' => $username,
     'password' => $password));

 $mail = $smtp->send($to, $headers, $body);

 if (PEAR::isError($mail)) {
   echo("<p>" . $mail->getMessage() . "</p>");
  } else {
   echo("<p>Message successfully sent!</p>");
  }
 ?>
require_once 'Zend/Loader/Autoloader.php'; //Should be in the include_path
$autoloader = Zend_Loader_Autoloader::getInstance();

$config = array('ssl' => 'tls', 'port' => 587, 'auth' => 'login', 'username' => 'username@gmail.com', 'password' => 'password');
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);

$mail = new Zend_Mail();
if (strtolower($this->getType()) == 'html')
$mail->setBodyHtml($this->getBody());
}
else {
$mail->setBodyText($this->getBody());
}

$mail
->setFrom($this->getFromEmail(), $this->getFromName())
->addTo($this->getToEmail(), $this->getToName())
->setSubject($this->getSubject());

$mail->send($transport);