我想從linux服務器發送一封電子郵件。服務器不需要收回電子郵件。以編程方式發送來自Linux服務器的電子郵件
是否有比sendmail更簡單的解決方案來發送外發電子郵件?
我寧願使用Perl發送電子郵件。
我想從linux服務器發送一封電子郵件。服務器不需要收回電子郵件。以編程方式發送來自Linux服務器的電子郵件
是否有比sendmail更簡單的解決方案來發送外發電子郵件?
我寧願使用Perl發送電子郵件。
Sendmail不是唯一的選擇。你可以使用Postfix,Qmail和許多其他的
我的Perl腳本調用mailx命令。要知道如何使用它,請鍵入'man mailx' 但是,這需要配置MTA correclty。
或者,你可以使用Net :: SMTP Perl庫,並使用選擇
我知道你說的Perl,但我用過的最簡單的跨平臺電子郵件發送庫是python的smtplib。當然值得一看。
調用/usr/lib/sendmail
通常是首選方法,因爲它可以正確處理傳遞問題。這不意味着使用sendmail。大多數(所有?)郵件傳輸系統提供的命令只是,命名爲sendmail
,並提供了與原始兼容的界面。
或者,您可以使用類似Net :: SMTP的包直接通過SMTP中繼發送,但要特別確保正確處理傳送問題。
如果您的組織中已經有其他郵件服務器正在運行,那麼您在發送的計算機上不需要郵件傳輸代理(MTA)實例:您可以讓Perl通過SMTP將電子郵件發送到該服務器,因此不需要在另一臺機器上安裝sendmail等MTA。
我喜歡創建一個Gmail或其他免費帳戶,然後使用J2EE中的Java郵件API來發送消息(從您的新Gmail帳戶)誰...通常我會創建一個梅勒類它可以使用默認的構造函數構造,然後給它一個send(String dest ,String subj,String body [,Obj attach ...如果你想要]),然後在你的情況下,你可能會把這個東西包裝在一個main方法中,這樣你就可以用別的命令行參數來調用它,或者從內部調用一些java程序。如果你有興趣,我會爲你拍攝代碼。
我發現nullmailer對於描述的場景非常有用的解決方案。 Nullmailer是一個sendmail/qmail/etc替代MTA,可以轉發到一組固定的郵件服務器。配置和消耗很少的資源非常簡單。
nullmailer與其他提到的解決方案(如mstmp和ssmtp)相比的一個重要優勢在於它維護了要發送的電子郵件隊列。發送郵件的應用程序在郵件排隊時(毫秒)僅在很短的時間內被阻止。發送郵件發生在另一個進程的上下文中。 像mstmp和ssmtp這樣的解決方案不會維護郵件隊列。發送發生在應用程序的上下文中,從而阻止應用程序。以這種方式發送電子郵件可以很容易地花費1到2秒或更長的時間。這在許多情況下可能不成問題,但如果電子郵件是由Web應用程序發送的,則可能會成爲問題。
不好意見!一個本地mta後臺處理消息,處理錯誤,在出現問題時重試交付。所有這一切你的應用程序必須自己做,如果它談到smtp到遠程服務器。 – hop 2009-02-18 10:48:14
我不同意:當地的MTA需要管理。如果沒有正確完成,這隻會刷下地毯下的任何問題。我發現傳遞給智能主機沒有任何問題。如果智能主機出現問題,則只需在Perl方面進行最小限度的干預/錯誤處理。 – ShiDoiSi 2009-02-18 12:54:40
沒有工作(傳出)mta的unix系統無論如何都不是正確配置的unix系統!它不僅僅是你想發送電子郵件的小應用程序:還有各種各樣的依賴它的cron作業等等。在大多數Linux發行版中,您甚至不能在沒有--force的情況下卸載mta。 – hop 2009-02-18 17:43:18