Jump to content

How to use a Yahoo email address as the destination for SMTP form?


Acknowledged74

Recommended Posts

Hi

I have a simply working SMTP form, however I need this to send to a yahoo.com email address, what can I add to achieve this?

SmtpConfig.php
==============

<?php
//Server Address
$SmtpServer="91.186.30.25";
$SmtpPort="25"; //default
$SmtpUser="[email protected]";
$SmtpPass="things123";
?>

SmtpClass.php
=============

<?php
class SMTPClient
{
// A function for Setting up SMTP
function SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, $from, $to, $subject, $body)
{

$this->SmtpServer = $SmtpServer;
$this->SmtpUser = base64_encode ($SmtpUser);
$this->SmtpPass = base64_encode ($SmtpPass);
$this->from = $from;
$this->to = $to;
$this->subject = $subject;
$this->body = $body;


//Setting Default port Value
if ($SmtpPort == "")
{
$this->PortSMTP = 25;
}
else
{
$this->PortSMTP = $SmtpPort;
}
}

//Sending the Mail
function SendMail ()
{
if ($SMTPIN = fsockopen ($this->SmtpServer, $this->PortSMTP))
{
fputs ($SMTPIN, "EHLO ".$HTTP_HOST."\r\n");
$talk["hello"] = fgets ( $SMTPIN, 1024 );
fputs($SMTPIN, "auth login\r\n");
$talk["res"]=fgets($SMTPIN,1024);
fputs($SMTPIN, $this->SmtpUser."\r\n");
$talk["user"]=fgets($SMTPIN,1024);
fputs($SMTPIN, $this->SmtpPass."\r\n");
$talk["pass"]=fgets($SMTPIN,256);
fputs ($SMTPIN, "MAIL FROM: <".$this->from.">\r\n");
$talk["From"] = fgets ( $SMTPIN, 1024 );
fputs ($SMTPIN, "RCPT TO: <".$this->to.">\r\n");
$talk["To"] = fgets ($SMTPIN, 1024);
fputs($SMTPIN, "DATA\r\n");
$talk["data"]=fgets( $SMTPIN,1024 );
fputs($SMTPIN, "To: <".$this->to.">\r\nFrom: <".$this->from.">\r\nSubject:".$this->subject."\r\n\r\n\r\n".$this->body."\r\n.\r\n");
$talk["send"]=fgets($SMTPIN,256);
//CLOSE CONNECTION AND EXIT ...
fputs ($SMTPIN, "QUIT\r\n");
fclose($SMTPIN);
//
}
return $talk;
}
}
?>



mail.php
========

<?php

//Include Class And Config
include('SmtpConfig.php');
include('SmtpClass.php');

//Check the Request Method
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$to = $_POST['to'];
$from = $_POST['from'];
$subject = $_POST['sub'];
$body = $_POST['message'];
// Send the mail Using the class
$SMTPMail = new SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, $from, $to, $subject, $body);
$SMTPChat = $SMTPMail->SendMail();
}
// After Exit, show the form
?>
<form method="post" action="">
To:<input type="text" name="to" />
From :<input type='text' name="from" />
Subject :<input type='text' name="sub" />
Message :<textarea name="message"></textarea>
<input type="submit" value=" Send " />
</form>

Probably quite straight form, but of course I don#t know how :0)

Much appreciated.

Actually first things first there are even error for the above which I've sourced from - http://www.9lessons.info/2009/10/send-mail-using-smtp-and-php.html

Man I soooo hate SMTP, I've never got my hand around it, so annoying my hosting doesn't support Mail ()

I doubt the code you've posted to be working. There are too many occurrences could go wrong here. My advice to do this is using some php mail library, either swiftmailer or phpmailer.

An example in swiftmailer using the yahoo mail server:

<?php

require_once $_SERVER['DOCUMENT_ROOT'] . '/swiftmailer-master/lib/swift_required.php';

date_default_timezone_set('America/Toronto');

// Create the Transport
$transport = Swift_SmtpTransport::newInstance('smtp.mail.yahoo.com',465,'ssl')
  ->setUsername('[email protected]')
  ->setPassword('password')
  ;

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$message = Swift_Message::newInstance('Some subject..')
  ->setFrom(array('[email protected]' => 'Acknowledged74'))
  ->setTo(array('[email protected]' => 'Acknowledged74'))
  ->setBody('Body content ....')
  ;

// Send the message
$result = $mailer->send($message);

A quick reference about it, click!

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.