2017-03-31 3 views
-1

デフォルトのphp mail()の機能は設定が容易ではないように見え、設定済みのOSをsendmailという関数で呼び出してメールを送信します。PHP mail()funciton:SMTPをサポートするためにPythonまたはPHPスクリプトを使用してsendmailを置き換えます

sendmailをインストールすることもできますが、このようなプログラムを構成することは、OSとその自己バージョンによって決まります。

だから私は、PythonやPHPの軽量スクリプトを記述し、実行可能ファイルとしてそれを作るための方法がある場合は、その後、php.ini

; For Unix only. You may supply arguments as well (default: "sendmail -t - 
; http://php.net/sendmail-path 
sendmail_path = /some/script/pymail.py 

でsendmailのパスを交換すると思うそしてそれはどんなSMTPアカウントの設定をサポートその上に。

pythonを使用してメールを送信することは難しくありませんが、sendmailコマンドと同じまたは互換性のある入力パラメータを適用する方法はありますか?

このアプローチでは、一部の作業や既存の作業が可能ですか?

+0

あなたは本当に、本当に、本当に[phpmailerの](HTTPSを検討する必要があります://github.com/PHPMailer/PHPMailer)。 Ditch sendmailと 'mail()' – Machavity

+0

私は古いサイトを維持しており、mail()呼び出しは変更できません。私はメールを設定する必要がありますが、私は変更しようとしています。 PHPMailerを使ってこのようなPHPスクリプトを書く方法はありますか? –

+0

@Machavity最後に、GitHubでリポジトリが動作することを発見しました。ありがとうございます。 –

答えて

0

私も自分で簡単なスクリプトをうまく:ちょうど入れ

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import smtplib 
from sys import stdin 
from email.mime.text import MIMEText 
import email 

s = smtplib.SMTP_SSL('smtp.mydomain.com:465') 
s.login('[email protected]','my_password') 
mail = email.message_from_string(stdin.read()) 
s.sendmail(
    mail['from'] or '[email protected]', 
    mail['to'] or mail['bcc'], 
    mail.as_string() 
) 
s.quit() 

上記のスクリプトを/usr/sbin/sendmailにまたはwhich sendmailによる実際のところは、それが実行可能chmod +x /usr/sbin/sendmailし、テストします:

<?php 
mail(
    "[email protected]", 
    "Email Title", 
    "Email Content", 
    "Content-type: text/plain; charset=utf-8;\n" 
); 

十分に簡単! Pythonをインストールするだけです。

それはnessesaryある場合(つまり、あなたがTLSポート587または直接ポート25を介して送信したい)、単にいくつかの設定参照パイソンを変更smtplib

関連する問題