[smtp] localhostからサーバーに送られたPHPメール


Answers

Pythonでこのコードスニペットを実行すると、localhostにサーバーを設定できます。 php.iniで何も変更する必要はありません。 (php.iniのsmtpはlocalhostでなければなりません。ポートは25に設定してください)。 お役に立てれば。 :)

import smtpd
import smtplib
import asyncore
class SMTPServer(smtpd.SMTPServer):

    def __init__(*args, **kwargs):
        print "Running smtp server on port 25"
        smtpd.SMTPServer.__init__(*args, **kwargs)

    def process_message(*args, **kwargs):
        to = args[3][0]
        msg = args[4]
        gmail_user = 'yourgmailhere'
        gmail_pwd = 'yourgmailpassword'
        smtpserver = smtplib.SMTP("smtp.gmail.com",587)
        smtpserver.ehlo()
        smtpserver.starttls()
        smtpserver.ehlo
        smtpserver.login(gmail_user, gmail_pwd)
        smtpserver.sendmail(gmail_user, to, msg)
        print 'sent to '+to
        pass

if __name__ == "__main__":
    smtp_server = SMTPServer(('localhost', 25), None)
    try:
        asyncore.loop()
    except KeyboardInterrupt:
        smtp_server.close()
Question

私はローカルホストからgmailサーバforexample(anydomain@gmail.com)に電子メールを送りたいと思います。

コードサンプルは次のとおりです。

<?php 
$to = "thisizraheel@gmail.com";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

if (mail($to, $subject, $body)) {
    echo("<p>Message successfully sent!</p>");
} else {
    echo("<p>Message delivery failed...</p>");
}
?>

私はまた、php.iniのsmtp設定を次のように変更しました。

SMTP = mail.gmail.com   
smtp_port = 25

しかし、まだ動作していない、関数mail()は動作していません。 私を助けてください




100%働いて、私は私のウェブサイトでもこれを使用しています

<?php
$con=mysql_connect("mysql12","","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$db=mysql_select_db("data",$con);
if(!$db)
{
die( 'Could not select database'.mysql_error() );
}

$to=$_POST['to'];
$subject=$_POST['subject'];
$body=$_POST['tarea'];

$query="select fname from table where email='$to'";
$fetch=mysql_query($query);

while ($rows=mysql_fetch_array($fetch)) 
{
 $name=$rows['fname'];


$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "To:" .$name. "\r\n";
$headers .= 'From: <abcd@gmail.com>' . "\r\n";
mail($to, $subject, $body, $headers);
}



さて、私はこれまでずっとこの問題を抱えています

メールサーバpop3サーバかsmtpが必要です。静的IPとドメインという名前のサーバ、つまりlocalhostは動作しません。

これを設定するCURLマイカール機能がそれに応じて調整されます

    function CurlMail($The_mail, $The_FamKey, $The_Service ,$The_Client)
{

        //create array of data to be posted

        $post_data['email'] = $The_mail;
        $post_data['FamilyKey'] = $The_FamKey;
        $post_data['Service'] = $The_Service;
        $post_data['Client'] = $The_Client;

        //traverse array and prepare data for posting (key1=value1)
        foreach ( $post_data as $key => $value) 
                {
                    $post_items[] = $key . '=' . $value;
                }
        //create the final string to be posted using implode()
        $post_string = implode ('&', $post_items);
        //create cURL connection
        $curl_connection =  curl_init('http://foo.com/mail.php');
        //set options
        curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($curl_connection, CURLOPT_USERAGENT,  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
        curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 0);
        //set data to be posted
        curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
        //perform our request
        $result = curl_exec($curl_connection);
        //show information regarding the request
        print_r(curl_getinfo($curl_connection));
        echo curl_errno($curl_connection) . '-' .curl_error($curl_connection);
        //close the connection
        curl_close($curl_connection);
    }

次に、SMTPを設定したライブサーバーで、これらの詳細については、php.iniを参照してください。MAIL.PHP

ini_set('SMTP', "127.0.0.1");
ini_set('smtp_port', "25");

 $to = "abc@gmail.com";
 $subject = "Test mail";
 $message = "Hello! This is a simple email message.";
 $from = "jono@bay.org";
 $headers = "From:" . $from;
 mail($to,$subject,$message,$headers);
 echo "Mail Sent.";



Links



Tags

smtp   gmail   php php